想知道如何使用 Python 进行绘图和数据可视化吗?有兴趣学习 Python 中最常用的数据可视化库之一吗?如果是的话,你来对地方了。
在本期由两部分组成的教程中,我们将学习如何使用 matplotlib 最常用的数据可视化库 之一 。在这两篇文章中,我们将创建不同类型的图表,包括:
- 线图
- 直方图
- 条形图
- 散点图
- 堆叠图
- 饼状图
我们还将了解 matplotlib 中有哪些不同的函数和模块。
在这里,我们将探索如何使用 matplotlib 创建线图和直方图。除了绘制图表之外,我们还将了解如何更改图表的默认大小以及如何向其轴添加标签、标题和图例。
准备好了吗?我们开始吧!
安装 Matplotlib 库
安装 matplotlib 的最简单方法是使用 pip 安装程序 ,它随大多数标准 Python 安装一起提供。从您喜欢的终端执行以下命令:
pip install matplotlib
官方 Anaconda 文档 中提到的命令 来安装 matplotlib 库。
导入所需的库:Numpy 和 MatplotLib.pyplot
安装 matplotlib 后,下一步是导入所需的库。matplotlib 的 pyplot 库用于绘制不同类型的图形。我们将与 numpy 库一起导入它。
您将在后面的部分中看到我们如何使用这两个库。现在,执行以下脚本来导入它们:
import matplotlib.pyplot as plt %matplotlib inline import numpy as np
由于我使用 Jupyter Notebook 执行本文中的脚本,因此我必须执行
%matplotlib
inline 语句,该语句告诉 IDE 在其界面中绘制图形。如果您没有使用这样的 IDE,则无需执行此语句。
另一件需要注意的重要事情是,我们在导入时将其重命名
pyplot
为
plt
,因为它更易于输入,并且是 的标准昵称
pyplot
。从现在开始,在本文中,我们将继续使用此昵称。
现在,我们已经拥有开始绘制不同类型的 matplotlib 图形所需的一切。
使用 pyplot 更改绘图大小
要查看绘制的图形的默认绘图大小
plt
,请执行以下脚本:
plot_size = plt.rcParams["figure.figsize"] print(plot_size[0]) print(plot_size[1])
在上面的脚本中,我们使用了
rcParams
的属性
plt
并传入“
figure.figsize
”作为参数,它返回一个包含绘图默认宽度和高度的列表。第一个索引包含宽度,第二个索引包含高度。这两个值都打印到屏幕上。您将在输出中看到 6 和 4,这意味着绘图的默认宽度为 6 英寸,默认高度为 4 英寸。
要更改绘图大小,请执行以下脚本:
plot_size[0] = 8 plot_size[1] = 6 plt.rcParams["figure.figsize"] = plot_size
在上面的脚本中,我们分别将绘图的宽度和高度更改为 8 英寸和 6 英寸。
线图
线图是 最简单的图 ;它以曲线的形式显示 x 轴和 y 轴上的值之间的关系。
要创建线图,可以使用模块的 plot 函数
plt
。该函数的第一个参数
plot
是要在 x 轴上显示的值列表。第二个参数是要在 y 轴上绘制的值列表。请看以下示例:
plt.plot([-3,-2,-1,0,1,2,3],[9,4,1,0,1,4,9]) plt.show()
在上面的脚本中,x 轴的列表中有六个值。在 y 轴上,我们有 x 值的平方。这意味着线图将显示平方函数,如输出所示。请注意,matplotlib 图形的默认绘图颜色为蓝色。
值得一提的是,
need to call the
show
function of the
plt
module
需要调用 plt 模块的 show 函数
制作平滑曲线
我们可以使用 numpy 库的 linspace 函数,而不必手动输入 x 轴和 y 轴列表的值。此函数有三个参数:要生成的值的下限、上限以及要在下限和上限之间返回的等距点的数量。请看以下脚本:
x = np.linspace(-15, 14, 30) y = np.power(x,3) plt.plot(x, y, "rebeccapurple") plt.show()
在上面的脚本中,我们还利用了 numpy 库的 power 函数来计算 x 数组中每个元素的立方。在输出中,您将看到 cube 函数的行显示为紫色,因为我们将 '
rebeccapurple
' 指定为该函数的第三个参数
plot
。
初学者须知:
编程中的函数
执行特定操作
。要将数据传递给函数,我们使用参数。然后函数使用传递给它的参数。例如,在 plot 函数中,第一个参数是要在 x 轴上绘制的数据,第二个参数是要在 y 轴上绘制的数据,第三个参数是颜色代码。您可以手动选择颜色代码,也可以使用
免费的在线颜色选择器
工具选择精确的色调,例如“
rebeccapurple
”表示特定的紫色色调。
以下是您可以使用的其他颜色的图表:
输出如下所示:
添加标签、标题和图例
要向 x 轴和 y 轴添加标签,可以使用
xlabel
的
ylabel
和
plt
。同样,要添加标题,可以使用
title
如下所示的函数:
x = np.linspace(-15, 14, 30) y = np.power(x,3) plt.xlabel("input") plt.ylabel("output") plt.title("Cube Root") plt.plot(x, y, "deepskyblue") plt.show()
在输出中,您应该看到新的轴标签和标题:
要向您的图表添加图例,您必须传入
label
绘图函数的属性值,如下所示:
x = np.linspace(-15, 14, 30) cube = np.power(x,3) square = np.power(x,2) plt.xlabel("input") plt.ylabel("output") plt.title("Cube Root") plt.plot(x, cube, "rebeccapurple", label = "Cube") plt.plot(x, square , "deepskyblue", label = "Square") plt.legend() plt.show()
在上面的脚本中,我们有两个图:一个是平方函数图,另一个是立方函数图。为了帮助区分这两个图,我们不仅可以使用不同的颜色,还可以添加一个图例来清楚地标明哪个是哪个。在上面的脚本中,立方图的图例被恰当地命名为 Cube,并将以紫色绘制。平方图的图例名为 Square,将以蓝色绘制。上面脚本的输出如下所示:
专业提示:如何改进 Matplotlib 线图
您还可以在线图上的数据点上添加 标记 。为此,您需要为绘图函数的 marker 参数传递一个值,如下所示:
x = np.linspace(-15, 14, 30) x = np.linspace(-15, 14, 30) cube = np.power(x,3) square = np.power(x,2) plt.xlabel("input") plt.ylabel("output") plt.title("Cube Root") plt.plot(x, cube, "rebeccapurple", marker = "o", label = "Cube") plt.plot(x, square , "deepskyblue", marker = "v", label = "Square") plt.legend() plt.show()
在上面的脚本中,我们指定“
o
”作为立方体函数的标记值;这将为数据点生成圆圈。同样,对于正方形函数,我们指定“
v
”作为标记值;这会使用倒三角形表示点:
在 matplotlib 中生成不同类型标记的代码可以 在这里 .
直方图
直方图
以数据间隔(称为“箱”)的形式显示数据的分布
。要绘制直方图,您需要调用
hist
的函数
plt
。第一个参数是数据集,第二个参数是箱,第三个参数是要绘制的直方图类型。您还可以使用可选参数
rwidth
,它定义直方图中每个间隔或“箱”的宽度。请看以下示例:
stock_prices = [23,21,43,32,45,34,56,23,67,89,23,21,43,32,45,34,56,23,67,89,23,21,43,32,45,34,56,23,67,89] bins = [20,40,60,80,100] plt.hist(stock_prices, bins, color = "rebeccapurple", histtype="bar", rwidth=0.9) plt.show()
在上面的脚本中,我们有 30 家公司的平均股价的虚构数据。我们为数据间隔定义了五个区间。接下来,我们使用函数
hist
绘制这些数据。输出如下所示:
您还可以创建
水平直方图
。为此,您只需将值 '
horizontal
' 作为函数方向参数的值
hist
:
stock_prices = [23,21,43,32,45,34,56,23,67,89,23,21,43,32,45,34,56,23,67,89,23,21,43,32,45,34,56,23,67,89] bins = [20,40,60,80,100] plt.hist(stock_prices, bins, color = "deepskyblue", histtype="bar", rwidth=0.9, orientation = "horizontal") plt.show()In the output, you'll see a horizontal histogram as shown below:
专业提示:如何改进 Matplotlib 直方图
除了一维直方图,您还可以绘制二维直方图。为此,
您需要二维直方图的 x 轴和 y 轴的值
。该
hist2d
函数用于绘制二维直方图:
stock_prices = [23,21,43,32,45,34,56,23,67,89] years =[2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018] plt.hist2d(stock_prices, years) plt.show()
该脚本绘制了股票价格与年份的关系图,如下所示:
还想了解更多?
在这里,我们简要介绍了如何使用 Python 中的简单图表(如线图和直方图)及其变体绘制数据。在本系列的第二部分中,您将学习如何创建条形图、堆叠图、散点图和饼图。
想要了解更多有关数据科学的 Python 知识?请务必查看我们的 数据科学 Python 简介 在线课程,了解 Python 编程的初学者指南。
发表评论 取消回复