|||
refer to: https://blog.csdn.net/MyName_Guan/article/details/109956855
Python - Matplotlib
Matplotlib 是一个用于在 Python 中绘制数组的 2D 图形库;
下面代码可以直接在python环境下运行;
文中可能不会解释全部函数,看代码中的注释会有很大的帮助,如有需要可以查阅官方文档;
目录
参考资料:
Figure, Axes, Axies的关系
官方文档:pyplot.subplots,pyplot.subplot
例子1:如何在一个图里生成多个子图 ?
使用 plt.subplot() 函数
例子2:这些子图如何共享坐标轴 ?
使用 plt.subplots() 函数
例子3:如何在坐标系的右侧显示也显示y轴 ?
即:把折线图放到一个图里面,y轴却用不同的区间
使用 axes.twinx() 函数
官方文档:Plots with different scales
例子4:多个子图常见的问题
第二列x轴坐标不显示
生成一个所有子图共用的x、y轴坐标
正文
例子1:如何生成多个子图
plt.figure(num=None, figsize=None, dpi=None, facecolor=None):
常用参数:
num:画布 (figure) 的 id.
figsize:画布的尺寸,默认=(6.4, 4.8).
dpi: 画布的像素, 默认=100
facecolor:画布的背景色 默认=“white”.
plt.subplot(int, int, index),返回一个axes(坐标轴,或者称为子图):
常用参数:
int:第一个代表行.
int:第二个代表列.
index: 索引, 索引是从1开始从左往右,从上到下递增。
结果:
在这里插入图片描述
例子2:如何生成同轴的多个子图
和例子1有两个不同,第一,plt.subplots()的使用而不是plt.subplot(). 第二,坐标轴的控制变成了axes.set_xticks().
plt.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, figsize=(6.4, 4.8)),它返回一个figure,和坐标轴们。
常用参数:
nrows:几行
ncols:几列
sharex, sharey:是否共享x/y轴,取值: {‘none’, ‘all’, ‘row’, ‘col’}. True/all,所有子图共享子图;row,每行子图共享x/y轴;col,每列子图共享x/y轴。
figsize:图的尺寸
axes.set_xticks(),其他相似的函数:
axes.set_xlim((-3,5)),axes.set_ylim((-3,3))
axes.set_xlabel(‘x轴’, fontsize=15), axes.set_ylabel(‘y轴’, fontsize=15, color=‘red’)
结果:
在这里插入图片描述
例子3:如何在一个图里生成两条不同y轴的线
axes2 = axes1.twinx():
生成一个和axes1共享x轴的坐标轴。
结果:
在这里插入图片描述
例子4:多个子图常见的问题
这个例子将会给多子图的画布补充一些细节。例如,画布整体的x、y轴标签和title的位置。每一列的y轴的标签等。通过下面的代码可以生成一个更多信息的图,如下图:
下面例子的结果
生成数据:
作图:
可能遇到的问题:
问题1:如何生成奇数个子图?例如画中,画布生成了六个子图,如何只保留5个?
使用函数 fig.delaxes() 删除想删除的子图。
问题2:当删除最后一张图后,只显示第一列的x轴坐标,不显示第二列的x轴坐标。
它是因为共享x轴之后,x轴坐标只显示在最下面的图下。可以通过 ax4.xaxis.set_tick_params() 设置强制显示。
主要参数:
axis:控制强制显示x轴还是y轴的内容,可选 {‘x’, ‘y’, ‘both’}。
which:控制强制显示major ticks 还是minor ticks的内容,可选 {‘major’, ‘minor’, ‘both’}。–> Major/ Minor ticks 的区别
labelbottom, labeltop, labelleft, labelrightbool: 控制子图的那个地方label强制显示,bool型变量。
labelrotation:控制label旋转的角度。
官方文档:axes.xaxis.set_tick_params()
问题3:如何生成一个所有子图都共用的x、y轴标签
使用函数 fig.text() 函数控制显示。
x,y: 文本的位置,它是通过百分比控制x、y的在图中的相对位置
s:文本的内容
官方文档:fig.text()
————————————————
版权声明:本文为CSDN博主「MyName_Guan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MyName_Guan/article/details/109956855
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-20 02:35
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社