MATLAB如何画两个子图共用一个Y轴标签?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB如何画两个子图共用一个Y轴标签?相关的知识,希望对你有一定的参考价值。

参考技术A 用plotyy来画

PLOTYY(X1,Y1,X2,Y2)

左边一个y轴,右边一个y轴追问

是上下两个子图,用subplot(2,1,1)和subplot(2,1,2)画的

参考技术B 用plotyy(x,y1,x,y2)可以做到共用x轴,但是是左右两边各一个y轴,不知能不能满足您的要求。

删除 Matplotlib,Python 中某些子图的 y 轴刻度标签

【中文标题】删除 Matplotlib,Python 中某些子图的 y 轴刻度标签【英文标题】:Removing y axis tick labels for certain subplots in Matplotlib,Python 【发布时间】:2020-12-16 13:10:51 【问题描述】:

我有一个包含三个子图的图形,所有子图的 y 轴都使用相同的刻度标签(它们是分类的)。代码如下:

on_bus = business_changes[business_changes['Business characteristics']=='Ontario']
qu_bus = business_changes[business_changes['Business characteristics']=='Quebec']
fig, ax = plt.subplots(nrows=1, ncols=3, sharex=True, sharey=True, figsize=(20,10))
ax1 = plt.subplot(1,3,1) 
sns.barplot(x = business_changes.iloc[0,1:], y= business_changes.columns[1:])
plt.title("Changes made by businesses - Canada")
plt.subplot(1,3,2)
sns.barplot(x = on_bus.iloc[0,1:], y = on_bus.columns[1:])
plt.title("Changes by businesses - Ontario")
plt.subplot(1,3,3)
sns.barplot(x = qu_bus.iloc[0,1:], y = qu_bus.columns[1:])
plt.title("Changes by businesses - Quebec")
plt.show()

情节如下所示:

Plot

我想删除最后两个图的 y 轴标签,因为它们本质上与第一个图具有相同的标签。有了它,我就不必为空间而战,而且图表会看起来更整洁。

【问题讨论】:

【参考方案1】:

我的方法是使用axes.get_yaxis().set_visible(False)。所以如下:

f, axes = plt.subplots(1, 3)
ax1 = sns.barplot(x = business_changes.iloc[0,1:], y= business_changes.columns[1:], ax = [0])
plt.title("Changes made by businesses - Canada")
ax2 = sns.barplot(x = on_bus.iloc[0,1:], y = on_bus.columns[1:], ax = axes[1])
ax2.axes.get_yaxis().set_visible(False)
plt.title("Changes by businesses - Ontario")
ax3 = sns.barplot(x = qu_bus.iloc[0,1:], y = qu_bus.columns[1:], ax = axes[2])
plt.title("Changes by businesses - Quebec")
plt.show()

否则,请尝试将其放入您的脚本中,并绝对使用axes.get_yaxis().set_visible(False) 并定位最后两个图。就我而言,我将它们定义为 ax2ax3 并按名称“定位”。

【讨论】:

以上是关于MATLAB如何画两个子图共用一个Y轴标签?的主要内容,如果未能解决你的问题,请参考以下文章

matlab画图 如何将两个共用x轴的图画在一幅图上 使上边为一个y轴,下边为不同的y轴?

我想用matlab画下面的图,上下堆叠起来,共用一个横坐标轴,请高手指点!!

python 如何绘制子图的同时绘制双坐标轴图像

matlab里怎么画一个x轴两个y轴的图

MATLAB软件画图,如何对双Y轴分别进行说明?

MATLAB--多子图共用colorbar