【问题标题】:Matplotlib; making different subplots with different axis labels [duplicate]Matplotlib;用不同的轴标签制作不同的子图[重复]
【发布时间】:2020-02-12 09:14:04
【问题描述】:

我正在制作一个由 2 个子图组成的图。子图显示不同的数量,所以我希望轴标签不同。但是,我不知道如何使用 matplotlib 库来做到这一点。

代码示例:

import numpy as np
import matplotlib.pyplot as plt

frequency = np.linspace(0, 100, 10)
eta = np.ones(10)

Power = np.linspace(0, 10, 10)
T = np.linspace(0, 10, 10)

fig, ax = plt.subplots(2, 1)
ax[0].plot(frequency, eta)
plt.xlabel('frequency')
ax[1].plot(Power, T)


plt.show()

如图所示,标签出现在第二个 x 轴下方。 我尝试了很多东西,例如 plt.axlabel('frequency', 'Power') 或 ax[0].xlabel('frequency') 或 fig[0].xlabel('frequency'),但没有一个他们似乎工作。

有人知道怎么做吗?首先十分感谢!

【问题讨论】:

  • 就像您在每个轴上绘制一样,在每个轴上添加一个xlabel

标签: python matplotlib axis-labels subplot


【解决方案1】:

你可以试试这个:

import numpy as np
import matplotlib.pyplot as plt

frequency = np.linspace(0, 100, 10)
eta = np.ones(10)

Power = np.linspace(0, 10, 10)
T = np.linspace(0, 10, 10)

ax1 = plt.subplot(2, 1, 1)
plt.plot(frequency, eta)
plt.xlabel('frequency')

ax2 = plt.subplot(2, 1, 2)
plt.plot(Power, T)
plt.xlabel('label 2')

plt.subplots_adjust(hspace = 0.5)

plt.show()

plt.subplot(2, 1, 1)表示图中的子图为2行1列的形式,目前正在参考第1个子图。同样,plt.subplot(2, 1, 2) 表示正在引用第二个子图。

没有plt.subplots_adjust(hspace = 0.5),第一个子图的标签被第二个子图隐藏。

【讨论】:

  • 非常感谢您的回答。我认为这应该有效。我将围绕绘图进行循环,因为我想在 1 个子图中绘制 4 条曲线。有没有更漂亮的方法在这个循环之外制作轴标签,还是我应该保持这样(意味着每次循环完成时都会定义 xlabel)?
  • 您想在同一个子图中同时显示所有四条曲线吗?在这种情况下,我认为您应该参考适当的子图,使用 plt.plot() 4 次,然后使用一个 plt.xlabel() 语句。
  • 啊,我想我终于明白了。非常感谢您的帮助!
猜你喜欢
  • 2014-08-28
  • 2021-10-06
  • 2018-01-12
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
  • 2016-02-18
相关资源
最近更新 更多