Matplotlib:Python绘图库的函数及参数设置


Matplotlib是Python中一个功能强大的绘图库,它不仅支持基础的图表绘制,还提供了高级的可视化技术。下面是一些Matplotlib中一些常用函数的总结,可供在使用时快速查阅。

基础绘图函数

plt.plot()

绘制线图,是最常用的绘图函数之一。基本用法如下:

plt.plot(x, y, color='blue', label='Line 1', linewidth=2)
  • xy 是数据点的坐标。
  • color 指定线条颜色。
  • label 设置图例的标签。
  • linewidth 控制线条的宽度。

plt.scatter()

绘制散点图,表示数据点在二维空间中的分布。

plt.scatter(x, y, color='red', alpha=0.5)
  • xy 指定数据点的位置。
  • color 定义散点的颜色。
  • alpha 设置点的透明度。

plt.bar()

绘制条形图,展示不同类别的数据量。

plt.bar(x, height, width=0.8, color='green', edgecolor='black')
  • x 是条形的类别标签。
  • height 是条形的高度。
  • width 控制条形的宽度。
  • coloredgecolor 分别设置条形的填充色和边框色。

plt.hist()

绘制直方图,展示数据的分布情况。

plt.hist(data, bins=10, color='gray', alpha=0.7)
  • data 是要绘制的数据集。
  • bins 定义直方图的箱数。
  • coloralpha 分别控制直方图的颜色和透明度。

轴标签和标题

plt.xlabel('X Axis Label')
plt.ylabel('Y Axis Label')
plt.title('Chart Title')
  • 这些函数分别设置图表的x轴标签、y轴标签和标题。

图例和网格

plt.legend(['Line 1', 'Line 2'])
plt.grid(True)
  • plt.legend() 添加图例,需要传入一个标签列表。
  • plt.grid() 显示网格线,True 表示显示。

显示图表

plt.show()
  • 对于非交互式环境,plt.show() 是必需的,用于显示图表。

高级可视化技术

plt.contour()

创建等高线图,表示三维函数在二维平面上的等值线。

plt.contour(X, Y, Z, levels=14, colors='blue')
  • X, Y, Z 是等高线图的数据。
  • levels 定义等高线的数量。
  • colors 设置等高线的颜色。

plt.imshow()

显示图像数据,常用于显示矩阵数据的热力图。

plt.imshow(data, cmap='hot', interpolation='nearest')
  • data 是要显示的图像数据。
  • cmap 定义颜色映射。
  • interpolation 控制插值方法。

plt.pie()

绘制饼图,展示各部分占总体的比例。

plt.pie(sizes, labels=labels, autopct='%1.1f%%')
  • sizes 是各部分的大小。
  • labels 是各部分的标签。
  • autopct 设置百分比的显示格式。

plt.fill_between()

在两个函数曲线之间填充颜色或纹理。

plt.fill_between(x, y1, y2, color='gray', alpha=0.5)
  • x 是共有的x坐标。
  • y1y2 是要填充区间的上下边界。
  • coloralpha 控制填充颜色和透明度。

plt.errorbar()

绘制带有误差范围的图表。

plt.errorbar(x, y, yerr=error, fmt='o', capsize=5)
  • xy 是数据点的坐标。
  • yerr 定义y轴方向的误差范围。
  • fmt 设置数据点的格式。
  • capsize 控制误差线两端的标记大小。

plt.boxplot()

绘制箱线图,展示数据的分布情况。

plt.boxplot(data, notch=True, vert=True, patch_artist=True)
  • data 是箱线图的数据。
  • notch 是否绘制凹口箱线图。
  • vert 是否绘制垂直箱线图。
  • patch_artist 是否使用艺术家填充箱线图。

plt.subplot()

创建子图,展示多个图表。

fig, axs = plt.subplots(2, 2)
  • 2, 2 定义子图的行数和列数。
  • figaxs 分别是整个图表和子图的引用。

plt.annotate()

在图表中添加注释。

plt.annotate('Max Point', xy=(x_max, y_max), xytext=(0.8, 0.95),
             arrowprops=dict(facecolor='black', shrink=0.05))
  • xy 指定注释点的坐标。
  • xytext 指定注释文本的位置。
  • arrowprops 控制箭头的属性。

组合图形

在Matplotlib中,组合图形是一种强大的功能,它允许我们在同一个图表中展示多种类型的数据视图。以下是一些常见的组合图形示例,我将它们添加到您的博客中。

组合线图和散点图

在同一个图表中同时展示线图和散点图,可以突出显示某些特定的数据点。

plt.figure(figsize=(10, 6))
plt.plot(x, y, label='Trend Line', color='blue')
plt.scatter(x_special, y_special, color='red', label='Special Points')
plt.xlabel('X Axis Label')
plt.ylabel('Y Axis Label')
plt.title('Line and Scatter Plot')
plt.legend()
plt.show()

组合条形图和折线图

在条形图上叠加折线图,可以同时展示分类数据的总量和随时间变化的趋势。

plt.figure(figsize=(10, 6))
plt.bar(x, height, color='lightblue', label='Categories')
plt.plot(x, trendline, color='red', label='Trend Line')
plt.xlabel('X Axis Label')
plt.ylabel('Y Axis Label')
plt.title('Bar and Line Plot')
plt.legend()
plt.show()

组合箱线图和散点图

在箱线图的基础上添加散点图,可以展示数据的异常值或突出显示某些数据点。

plt.figure(figsize=(10, 6))
plt.boxplot(data, positions=[x_positions], widths=0.6)
plt.scatter(x_outliers, y_outliers, color='red', label='Outliers')
plt.xlabel('X Axis Label')
plt.ylabel('Y Axis Label')
plt.title('Box and Scatter Plot')
plt.legend()
plt.show()

组合子图

使用plt.subplot()创建子图,可以在一个图表中展示多个相关的图表。

fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x1, y1, 'o-')
axs[0, 1].scatter(x2, y2, color='red')
axs[1, 0].bar(x3, height3, color='green')
axs[1, 1].pie(sizes4, labels=labels4)
fig.suptitle('Combined Subplots')
plt.show()

组合等高线图和散点图

在等高线图上叠加散点图,可以展示三维函数在二维平面上的等值线以及某些特定的数据点。

plt.figure(figsize=(10, 6))
cp = plt.contour(X, Y, Z, levels, colors='blue')
plt.scatter(x_on_contour, y_on_contour, color='red', label='Points on Contour')
plt.clabel(cp, inline=True, fontsize=8)
plt.xlabel('X Axis Label')
plt.ylabel('Y Axis Label')
plt.title('Contour and Scatter Plot')
plt.legend()
plt.show()

通过这些组合图形的示例,您可以更灵活地使用Matplotlib来展示数据的不同方面,使得图表更加丰富和信息量更大。这些组合图形可以帮助观众从多个角度理解数据,提高数据可视化的效果。

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值