在matplotlib中绘制多个图,设置每个图的标签和大小

问题描述

我想在矩阵(4,2)中绘制多个图形,并且我希望左侧的图形在左侧具有标签,而右侧的则相反。另外,当我在Google Colab中绘制它们时,所有图形都被压缩在一起,因此我想增加它们的大小和它们之间的间距。最后,我希望只有底部的两个图带有x标签

有人可以给我一些使用哪些功能或内部参数的提示吗?另外,还有一些功能可以让我在浏览器的另一个窗口中看到图形,而不是在我的Colab代码框或类似的东西下面?

如果您能给我一些避免不必要代码提示,我也会很高兴。

到目前为止,这是我的代码

x = df_clean['SIO2']

fig,axs = plt.subplots(4,2)

axs[0,0].plot(x,df_clean['AL2O3'],'bo',markersize=1)
axs[0,1].plot(x,df_clean['MGO'],markersize=1)
axs[1,df_clean['FEOT'],df_clean['CAO'],markersize=1)
axs[2,df_clean['NA2O'],df_clean['K2O'],markersize=1)
axs[3,df_clean['TIO2'],df_clean['P2O5'],markersize=1)

plt.suptitle('Harker Diagrams (All data)')
plt.figure(figsize=(60,45))

这就是我要回来的东西:

And this is what I'm getting back:

解决方法

如果要确定轴标签的特定位置,方向,大小,颜色等,请使用ax.annotate()。您可以阅读here文档,了解如何使用它。这里有太多的选择可以提及它们,但是您可以尝试使用它,以获得精确的标签。

要调整绘图之间的间距,请使用wspace的{​​{1}}和hspace选项,您可以阅读有关here的信息。

如果希望x轴标签仅显示在底部,则在初次调用fig.subplots_adjust()时应使用sharex=True。如果所有绘图都具有相同的y轴,则最好设置plt.subplots()

您可以通过在调用sharey=True时设置figsize=(width,height)来调整整体图表的大小(依次调整每个图的大小)。

不确定是否要在不同的浏览器窗口中显示输出,但是这些功能应该可以帮助您制作更清晰的图形。