想知道如何使用 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 编程的初学者指南。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部