初学者使用 Python 介绍 Matplotlib

源节点: 1172034

这篇文章是作为 数据科学博客马拉松

如果您对数据分析或数据可视化感兴趣,那么您就来对地方了。那么我们先来简单介绍一下, 数据可视化 这是将数字、文本或大型数据集转换为各种类型的图形(例如直方图、地图、条形图、饼图等)的过程。为了可视化,我们需要一些工具或技术。 Matplotlib 是Python中最强大的数据可视化库之一。在本文中,我将向您解释如何可视化不同类型的图形和图表,以便轻松地向某人解释您的数据。

在本文中,我们将讨论以下内容:

  1. 装置
  2. 重要的绘图类型

我们先来简单介绍一下 Matplotlib. Matplotlib 是 python 编程语言的基本可视化或绘图库。 Matplotlib 是执行各种任务的强大工具。它能够创建不同类型的可视化报告,例如线图、散点图、直方图、条形图、饼图、箱线图以及更多不同的图。该库还支持 3 维绘图​​。

Matplotlib 的安装

我们来看看如何设置 Matplotlib 在 Google-Colab 中。 Colab Notebooks 与 Jupyter Notebooks 类似,只是它们在云上运行。它还与我们的 Google Drive 连接,因此可以更轻松地随时随地在任何系统上访问我们的 Colab 笔记本。您可以安装 Matplotlib 通过使用 画中画 命令。

!pip 安装 matplotlib
使用 pip 安装 Matplotlib
资料来源:当地

要验证安装,您必须编写以下代码块:

导入 matplotlib print(matplotlib.__version__)
打印 Matplotlib 的版本
资料来源:当地

Matplotlib 中重要的绘图类型

现在你知道什么是 Matplotlib 以及如何将其安装到您的系统中,让我们讨论一下您可以绘制用于分析数据或展示您的发现的不同类型的图表。

子情节-

子图()是一个 Matplotlib 函数用于在一张图中显示多个图。它采用各种参数,例如行数、列数或 sharex、sharey 轴。

代码:

# 首先创建一个绘图网格
图, ax = plt.subplots(2,2,figsize=(10,6)) #这将创建 2 行 2 列的子图 
#第二个参数是绘图的大小 
# 让我们绘制所有的数字 
ax[0][0].plot(x1, np.sin(x1), 'g') #row=0,col=0 
ax[0][1].plot(x1, np.cos(x1), 'y') #行=0,列=1 ax[1][0].plot(x1, np.sin(x1), 'b') #row=1,col=0
ax[1][1].plot(x1, np.cos(x1), '红色') #row=1,col=1
plt.tight_layout() 
#显示图
plt.show()
matplotlib 中的子图
资料来源:当地

现在让我们检查一下不同类别的图 Matplotlib 提供。

  • 线图
  • 直方图
  • Bar Chart
  • 散点图
  • 饼状图
  • 箱形图

大多数时候我们必须使用 Pyplot 作为接口 Matplotlib。因此,我们像这样导入 Pyplot:

import matplotlib.pyplot

为了让事情变得更容易,我们可以像这样导入它:

将matplotlib.pyplot导入为plt 

线图-

线图用于查看 x 轴和 y 轴之间的关系。

中的plot()函数 Matplotlib 库的 Pyplot 模块用于创建坐标 x 和 y 的二维六边形图。 plot() 将采用各种参数,例如 绘图(x,y,scalex,scaley,数据,** kwargs).

x,y 是水平轴和垂直轴的坐标,其中 x 值是可选的,其默认值为 range(len(y))。

鳞片, 鳞片 参数用于自动缩放x轴或y轴,其默认值为true。

**夸克 用于指定线标签、线宽、标记、颜色等属性。

代码:

#此行将创建长度为 1 的 10 到 100 之间的数字数组 
#np.linspace(satrt,stop,num) 
x1 = np.linspace(0, 10, 100) #线图 
plt.plot(x1, np.sin(x1), '-',color='橙色') 
plt.plot(x1, np.cos(x1), '--',color='b')
#给出x轴和y轴的名称 
plt.xlabel('x 标签')
plt.ylabel('y 标签') 
#也给出情节的标题 
plt.title("标题") 
plt.show() 
matplotlib 中的线图
资料来源:当地

直方图-

显示频率分布的最常见图形是直方图。要创建直方图,第一步是创建范围的容器,然后将整个值范围分配到一系列间隔中,并计算落在给定间隔中的值。我们可以用 plt.hist() 用于绘制直方图的函数,该函数将采用各种参数,如数据、数据箱、颜色等。

x: x 坐标或数组的序列

垃圾箱: 图中所需的 bin 数量的整数值

范围: bin 的下限和上限范围

密度: 包含布尔值的可选参数

组织类型: 用于创建不同类型的直方图的可选参数,例如:-bar、堆叠的条形图、步骤、填充的步骤,默认为条形图

代码:

#从随机分布中抽取随机样本。
x = np.random.normal(170, 10, 250)
#绘制直方图
plt.hist(x) plt.show()
matplotlib 中的直方图
资料来源:当地

条形图-

条形图主要用于显示数值和分类值之间的关系。在条形图中,我们有一个轴代表列的特定类别,另一个轴代表特定类别的值或计数。条形图可以垂直和水平绘制,并使用以下代码行绘制:

plt.bar(x,高度,宽度,底部,对齐)

x: 表示x轴的坐标

高度: 条形的高度

宽度: 条形的宽度。它的默认值为0.8

底部: 这是可选的。它是条形的 y 坐标,默认值为 None

对齐: center、edge 默认值为center

代码:

#定义数组数据= [5. 、25.、50.、20.]
plt.bar(范围(len(数据)),数据,颜色='c')
plt.show()
Matplotlib 中的条形图
资料来源:当地

散点图-

散点图用于显示变量之间的关系,并使用点进行绘图或用于显示两个数值变量之间的关系。

分散() 中的方法 Matplotlib 库用于绘图。

代码:

#创建x轴和y轴坐标
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y)
plt.图例()
plt.show()
Matplotlib 中的散点图
资料来源:当地

饼形图-

饼图(或圆形图)用于显示整体的百分比。因此,当我们想要将各个类别与整体进行比较时,就会使用它。 馅饼() 将采用不同的参数,例如:

x: 数组的序列

标签: 字符串列表,将作为饼图中每个切片的名称

自动控制: 它用于用数值标记楔形。标签将放置在楔子内。其格式为%1.2f%

代码:

#定义图形尺寸
plt.figure(figsize=(7,7))
x = [25,30,45,10]
#饼图的标签
标签 = ['A','B','C','D']
plt.pie(x, 标签=标签)
plt.show()
matplotlib 中的饼图
资料来源:当地

箱形图-

箱线图用于显示整个数据集或数据集中所有数值的摘要。摘要包含最小值、第一四分位数、中位数、第三四分位数和最大值。此外,中位数存在于第一四分位数和第三四分位数之间。这里的 x 轴包含数据值,y 坐标显示频率分布。

箱线图中使用的参数如下:

数据: NumPy数组

垂直: 它将采用布尔值,即垂直和水平图的 true 或 false 默认值为 True

宽度: 这将采用数组和框宽度集,可选参数

补丁艺术家: 用于给方框填充颜色,默认值为 false

标签: 用于设置数据集标签的字符串数组

代码:

#使用numpy创建随机值
值= np.random.normal(100, 20, 300)
#通过 matplotlib 中可用的 boxplot() 函数创建绘图
plt.boxplot(值,patch_artist=True,vert=True)
plt.show()
matplotlib 中的箱线图
资料来源:当地

面积图-

面积图或面积图用于以图形方式可视化定量数据,它基于线图。 填充之间() 函数用于绘制面积图。

参数:

x,y 表示绘图的 x 和 y 坐标。这将需要一个长度为 n 的数组。

是一个布尔值并且是可选的。如果为 true,则在两条线之间进行插值以找到精确的交点。

**夸克:alpha、颜色、面颜色、边缘颜色、线宽。

代码:

导入 numpy 作为 np 导入 pandas 作为 pd 导入 matplotlib.pyplot 作为 plt y = [2, 7, 14, 17, 20, 27, 30, 38, 25, 18, 6, 1]
#绘制给定数据的线
plt.plot(np.arange(12),y, color="blue", alpha=0.6, linewidth=2) #通过给出标签来装饰图 plt.xlabel('Month', size=12) plt.ylabel ('Turnover(Cr.)', size=12) #设置y轴从零开始 plt.ylim(bottom=0)
plt.show()
面积图
资料来源:当地

使用面积图的 fill_ Between() 填充线图中的面积。

plt.fill_ Between(np.arange(12),营业额,颜色=“青色”,alpha=0.4)
使用 fill_ Between() 填充线图中的区域
资料来源:当地

词云-

词云是文本数据的视觉表示。单词通常是单个单词,每个单词的重要性通过字体大小或颜色来显示。这 wordcloud() 函数用于在Python中创建词云。

wordcloud() 将采用各种参数,例如:

宽度: 设置画布的宽度.默认400

高度: 设置画布的高度.默认400

最大字数: 允许的字数,默认值为 200。

背景颜色: 词云图像的背景颜色。默认颜色为黑色。

词云对象创建完成后,就可以调用generate函数来生成词云并传递文本数据。

代码:

#导入库
从 wordcloud 导入 WordCloud 导入 matplotlib.pyplot 作为 plt 从 PIL 导入图像 导入 numpy 作为 np
#设置图形大小。 plt.figure(figsize=(10,15)) #虚拟文本。
text = '''Nulla laoreet bibendum purus, vitae sollicitudin sapien facilisis at.
 Donec erat diam,faucibus pulvinar eleifend vitae,vulputate quis ipsum。
 Maecenas luctus odio turpis, nec dignissim dolor aliquet id。
 Mauris eu semper risus, ut volutpat mi. Vivamus ut pellentesque sapien。
 Etiam fringilla Tincidunt lectus sed interdum。 Etiam vel dignissim 时代。
 Curabitur placerat Massa nisl,quis tristique ante mattis vitae。
 Ut volutpat augue non semper finibus。努勒姆将军多洛尔·坐·阿梅特·普鲁斯·马蒂斯。
 Ut id nulla quis purus tempus porttitor。 Ut venenatis sollicitudin est eget gravida。
 Duis imperdiet ut nisl cursus ultrices。 Maecenas dapibus eu odio id hendrerit。
 Quisque eu velit hendrerit,commod magna euismod,luctus nunc。
 Proin vel augue cursus,placerat urna aliquet,consequat nisl。
 Duis vulputate turpis a faucibus porta。 Etiam blandit totortor vitae dui frontibulum viverra。
 菜豆在埃里特门。 Duis vel ligula consectetur, pulvinar nisl vel, lobortis ex.'''
wordcloud = WordCloud( margin=0,colormap='BuPu').generate(text) #matplotlib 库的 pyplot 模块中的 imshow() 函数用于将数据显示为图像。
plt.imshow(wordcloud, 插值='双线性') plt.axis('关闭') plt.margins(x=0, y=0) plt.show()
词云
资料来源:当地

3-D 图表-

现在您已经看到了一些简单的图表,是时候检查一些复杂的图表了,即 3D 图表。最初,Matplotlib 是为 2 维图构建的,但后来添加了 3 维图。让我们看看如何在 Matplotlib 中绘制 3D 图形。

代码:

从 mpl_toolkits 导入 mplot3d
%matplotlib 内联
将 numpy 导入为 np
将 matplotlib.pyplot 导入为 plt
图 = plt.figure()
ax = plt.axes(投影='3d')

上面的代码用于创建 3 维轴。

Matplotlib 中的 3-D 图形
资料来源:当地

我们通过 Matplotlib 在 2-D 绘图中看到的每一个图也可以绘制为 3-D 图。例如,让我们检查 3D 平面中的线图。

ax = plt.axes(projection='3d') # 三维线的数据
zline = np.linspace(0, 15, 1000)
xline = np.sin(zline)
y 线 = np.cos(z 线)
ax.plot3D(xline, yline, zline, 'gray') # 三维散点数据
zdata = 15 * np.random.random(100)
xdata = np.sin(zdata) + 0.1 * np.random.randn(100)
ydata = np.cos(zdata) + 0.1 * np.random.randn(100)
ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap='绿色');
3D 散点图
资料来源:当地

所有其他类型的图形都可以用相同的方式绘制。 Matplotlib 3-D 提供的一种特殊图形是等高线图。您可以使用以下链接绘制等值线图:

图 = plt.figure()
ax = plt.axes(投影='3d')
ax.plot_wireframe(X, Y, Z, 颜色='黑色')
ax.set_title('线框');
Matplotlib 中的等值线图
资料来源:当地

要了解所有提到的绘图类型,您可以参考以下内容 – https://www.youtube.com/watch?v=yZTBMMdPOww

结论

在本文中,我们讨论了 Matplotlib 即Python中的基本绘图库,以及常用的统计分析的不同类型图表的基本信息。此外,我们还讨论了如何使用 subplot 函数在一张图中绘制多个图。

另外,在这里我们讨论了如何自定义图形或如何调整其大小,以及如何使用各种参数来装饰绘图。现在您已经了解了绘图和图表的基础知识,您可以尝试绘制不同的数据集和数学函数。

作为数据专业人员(包括数据分析师、数据科学家、机器学习工程师、深度学习工程师),他们在某些时候都需要可视化数据并呈现发现结果,所以什么是比这更好的选择,现在您知道了这项技术,您就会对这个行业有点信心。

感谢您阅读本文,如果您觉得文章有趣,请分享!

本文中显示的媒体不归 Analytics Vidhya 所有,由作者自行决定使用。

资料来源:https://www.analyticsvidhya.com/blog/2021/10/introduction-to-matplotlib-using-python-for-beginners/

时间戳记:

更多来自 分析维迪亚