您现在的位置是:首页 > 技术教程 正文

Python中使用matplotlib绘制各类图表示例

admin 阅读: 2024-03-24
后台-插件-广告管理-内容页头部广告(手机)
折线图

折线图是一种用于表示数据随时间、变量或其他连续性变化的趋势的图表。通过在横轴上放置时间或如此类似的连续变量,可以在纵轴上放置数据点的值,从而捕捉到数据随时间发生的变化。折线图可以用于比较不同变量的趋势,轻松地发现不同的变量之间的差异。

import matplotlib.pyplot as plt import numpy as np # 生成数据 x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) # 创建一个绘图窗口,大小为8x6英寸 plt.figure(figsize=(8, 6)) # 绘制折线图 plt.plot(x, y1, label='sin(x)') plt.plot(x, y2, label='cos(x)') # 添加图例,显示在右上角 plt.legend(loc='upper right') # 添加标题和轴标签 plt.title('Sin and Cos functions') plt.xlabel('x') plt.ylabel('y') # 显示网格线 plt.grid(True) # 保存图像,支持多种格式,如PNG、PDF、SVG等 plt.savefig('line_plot.png', dpi=300) # 显示图像 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

示例结果:

在这里插入图片描述

参数说明:

  • plt.figure(figsize=(8, 6)):创建一个大小为8x6英寸的绘图窗口。
  • plt.plot(x, y1, label='sin(x)'):绘制折线图,x和y1是数据点的x坐标和y坐标,label是该折线的标签,用于图例中显示。
  • plt.legend(loc='upper right'):添加图例,loc参数指定图例的位置,可以是字符串’upper right’等也可以是数字0~10。
  • plt.title('Sin and Cos functions'):添加标题。
  • plt.xlabel('x'):添加x轴标签。
  • plt.ylabel('y'):添加y轴标签。
  • plt.grid(True):显示网格线。
  • plt.savefig('line_plot.png', dpi=300):保存图像到文件line_plot.png中,dpi参数指定输出分辨率。
柱状图

柱状图是一种用于比较不同组数据之间差异的图表。它通过将每个数据组的值表示为柱形的高度来显示差异。柱状图可用于比较不同分类数据的数量、频率或比率,用于显示该类别数据的相对大小。

import matplotlib.pyplot as plt import numpy as np # 生成数据 x = ['A', 'B', 'C', 'D', 'E'] y1 = [3, 7, 2, 5, 9] y2 = [5, 2, 6, 3, 1] # 创建一个绘图窗口,大小为8x6英寸 plt.figure(figsize=(8, 6)) # 绘制柱状图 plt.bar(x, y1, color='lightblue', label='Group 1') plt.bar(x, y2, color='pink', bottom=y1, label='Group 2') # 添加图例,显示在右上角 plt.legend(loc='upper right') # 添加标题和轴标签 plt.title('Bar Plot') plt.xlabel('Category') plt.ylabel('Value') # 显示图像 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

示例结果:

柱状图

参数说明:

  • plt.bar(x, y1, color='lightblue', label='Group 1'):绘制柱状图,x是类别列表,y1是每个类别对应的值,label是该组数据的标签,用于图例中显示。color参数指定柱状图的颜色。
  • plt.bar(x, y2, color='pink', bottom=y1, label='Group 2'):绘制第二组数据的柱状图,bottom参数指定该组数据的底部位置。
  • plt.legend(loc='upper right'):添加图例,loc参数指定图例的位置,可以是字符串’upper right’等也可以是数字0~10。
  • plt.title('Bar Plot'):添加标题。
  • plt.xlabel('Category'):添加x轴标签。
  • plt.ylabel('Value'):添加y轴标签。
直方图

直方图用于展示数据的分布情况,通常用于分析数据集的偏态和峰态等特征。

import matplotlib.pyplot as plt import numpy as np # 生成随机数据 np.random.seed(42) data = np.random.normal(size=1000) # 绘制直方图 fig, ax = plt.subplots() ax.hist(data, bins=30, density=True, alpha=0.5, color='blue') # 设置图表标题和坐标轴标签 ax.set_title('Histogram of Random Data', fontsize=16) ax.set_xlabel('Value', fontsize=14) ax.set_ylabel('Frequency', fontsize=14) # 设置坐标轴刻度标签大小 ax.tick_params(axis='both', which='major', labelsize=12) # 显示图表 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

示例结果:
在这里插入图片描述

参数说明:

  • data:要绘制的数据集。
  • bins:直方图中的箱数。
  • density:是否将频数转换为概率密度。
  • alpha:直方图的透明度。
  • color:直方图的颜色。
  • ax.set_title():设置图表标题。
  • ax.set_xlabel():设置x轴标签。
  • ax.set_ylabel():设置y轴标签。
  • ax.tick_params():设置坐标轴刻度标签的大小。
饼图

饼图用于展示数据的占比情况,通常用于比较不同类别或部分之间的占比情况。

import matplotlib.pyplot as plt # 生成数据 labels = ['A', 'B', 'C', 'D'] sizes = [15, 30, 45, 10] colors = ['red', 'green', 'blue', 'yellow'] # 绘制饼图 fig, ax = plt.subplots() ax.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90) # 设置图表标题 ax.set_title('Pie Chart of Data', fontsize=16) # 显示图表 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

示例结果:
在这里插入图片描述

参数说明:

  • labels:数据的类别标签。
  • sizes:数据的占比。
  • colors:数据的颜色。
  • autopct:占比的显示格式。
  • startangle:饼图的起始角度。
  • ax.set_title():设置图表标题。
括线图

括线图是一种用于比较不同组数据分布情况的图表。它用于显示数据的中位数、上下四分位数、最小值和最大值,可以帮助我们了解数据分布的形状、位置和离散程度。在括线图中,每个箱子代表数据的25%~75%分位数,中位线是每个箱子中的中位数,普通线是每个箱子之外的最小值和最大值。

import matplotlib.pyplot as plt # 生成数据 data = [[3.4, 4.1, 3.8, 2.0], [2.3, 4.5, 1.2, 4.3]] # 创建一个绘图窗口,大小为8x6英寸 plt.figure(figsize=(8, 6)) # 绘制括线图 bp = plt.boxplot(data, widths=0.5, patch_artist=True, notch=True) # 设置每个箱线图的颜色和填充 for patch, color in zip(bp['boxes'], ['lightblue', 'pink']): patch.set_facecolor(color) # 添加标题和轴标签 plt.title('Box Plot') plt.xlabel('Group') plt.ylabel('Data') # 显示图像 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

示例结果:

在这里插入图片描述

参数说明:

  • plt.boxplot(data, widths=0.5, patch_artist=True, notch=True):绘制括线图,data是一个包含两个列表的列表,表示两组数据。widths参数指定每个箱线图的宽度,patch_artist参数指定使用补丁来填充箱线图,notch参数指定绘制出箱线图中的记分牌。
  • patch.set_facecolor(color):设置每个箱线图的颜色和填充,zip函数可以将两个列表打包成一个元组,逐个取出元组的值。
  • plt.title('Box Plot'):添加标题。
  • plt.xlabel('Group'):添加x轴标签。
  • plt.ylabel('Data'):添加y轴标签。
散点图

散点图是一种用于展示两个变量之间关系的图表。每个点代表一个数据点,它的位置由变量的值确定。散点图可用于寻找变量之间的相关性,并显示数据中的任何异常值或离群值。

import matplotlib.pyplot as plt import numpy as np # 生成数据 x = np.random.normal(size=100) y = np.random.normal(size=100) # 创建一个绘图窗口,大小为8x6英寸 plt.figure(figsize=(8, 6)) # 绘制散点图 plt.scatter(x, y, s=50, alpha=0.5) # 添加标题和轴标签 plt.title('Scatter Plot') plt.xlabel('x') plt.ylabel('y') # 显示图像 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

示例结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GM4O5nQt-1686898200230)(null)]

参数说明:

  • plt.scatter(x, y, s=50, alpha=0.5):绘制散点图,x和y是数据点的x坐标和y坐标,s指定点的大小,alpha指定点的透明度。
  • plt.title('Scatter Plot'):添加标题。
  • plt.xlabel('x'):添加x轴标签。
  • plt.ylabel('y'):添加y轴标签。
箱线图

箱线图用于展示数据的分布情况和异常值等信息,通常用于比较不同数据集之间的差异。

import matplotlib.pyplot as plt import numpy as np # 生成随机数据 np.random.seed(42) data = np.random.normal(size=(100, 4), loc=0, scale=1.5) # 绘制箱线图 fig, ax = plt.subplots() ax.boxplot(data, notch=True, sym='o', vert=True, whis=1.5) # 设置图表标题和坐标轴标签 ax.set_title('Boxplot of Random Data', fontsize=16) ax.set_xlabel('Variable', fontsize=14) ax.set_ylabel('Value', fontsize=14) # 设置坐标轴刻度标签大小 ax.tick_params(axis='both', which='major', labelsize=12) # 显示图表 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

示例结果:
在这里插入图片描述

参数说明:

  • data:要绘制的数据集。
  • notch:是否绘制缺口。
  • sym:异常值的标记形状。
  • vert:是否垂直绘制箱线图。
  • whis:箱线图的须长度,以四分位距的1.5倍为标准。
  • ax.set_title():设置图表标题。
  • ax.set_xlabel():设置x轴标签。
  • ax.set_ylabel():设置y轴标签。
  • ax.tick_params():设置坐标轴刻度标签的大小。
热力图

热力图用于展示数据之间的关系和趋势,通常用于分析二维数据的相关性和变化。

import matplotlib.pyplot as plt import numpy as np # 生成随机数据 np.random.seed(42) data = np.random.normal(size=(10, 10), loc=0, scale=1) # 绘制热力图 fig, ax = plt.subplots() im = ax.imshow(data, cmap='YlOrRd') # 添加颜色条 cbar = ax.figure.colorbar(im, ax=ax) cbar.ax.set_ylabel('Values', rotation=-90, va='bottom') # 添加轴标签和标题 ax.set_xticks(np.arange(len(data))) ax.set_yticks(np.arange(len(data))) ax.set_xticklabels(np.arange(1, len(data)+1)) ax.set_yticklabels(np.arange(1, len(data)+1)) ax.set_title('Heatmap of Random Data', fontsize=16) # 显示图表 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

示例结果:
在这里插入图片描述

参数说明:

  • data:要绘制的数据集。
  • cmap:颜色映射,用于表示数据大小的颜色范围。
  • ax.imshow():绘制热力图。
  • cbar.ax.set_ylabel():设置颜色条的标签。
  • ax.set_xticks():设置x轴刻度标签。
  • ax.set_yticks():设置y轴刻度标签。
  • ax.set_xticklabels():设置x轴刻度标签的标签名。
  • ax.set_yticklabels():设置y轴刻度标签的标签名。
  • ax.set_title():设置图表标题。
树状图

树状图用于展示数据之间的层次结构和关系,通常用于分析树形结构和组织架构等问题。

import matplotlib.pyplot as plt # 绘制树状图 fig, ax = plt.subplots() ax.barh('CEO', 1, color='black') ax.barh('VP1', 0.8, left=1, color='gray') ax.barh('VP2', 0.8, left=1, color='gray') ax.barh('Manager1', 0.6, left=1.8, color='gray') ax.barh('Manager2', 0.6, left=1.8, color='gray') ax.barh('Manager3', 0.6, left=1.8, color='gray') ax.barh('Supervisor1', 0.4, left=2.4, color='gray') ax.barh('Supervisor2', 0.4, left=2.4, color='gray') ax.barh('Supervisor3', 0.4, left=2.4, color='gray') ax.barh('Staff1', 0.2, left=3.2, color='gray') ax.barh('Staff2', 0.2, left=3.2, color='gray') ax.barh('Staff3', 0.2, left=3.2, color='gray') ax.barh('Staff4', 0.2, left=3.2, color='gray') # 设置轴标签和标题 ax.set_yticks([]) ax.set_xlim(0, 4) ax.set_xlabel('Hierarchy', fontsize=14) ax.set_title('Tree Diagram of Organization', fontsize=16) # 显示图表 plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

示例结果:
在这里插入图片描述

参数说明:

  • ax.barh():绘制水平条形图。
  • ax.set_yticks():设置y轴刻度标签。
  • ax.set_xlim():设置x轴坐标范围。
  • ax.set_xlabel():设置x轴标签。
  • ax.set_title():设置图表标题。
标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜