matplotlib 5 子图中的错误颜色条位置
Error colorbar position in matplotlib 5 subplot
我在 matplotlib 子图中遇到问题,我已经设置了这 5 个子图共享轴,它应该具有相同的长度和比例,但是,当我添加第 5 个子图的颜色条时,轴不与其他轴数学,什么我应该怎么做?
非常感谢
matplotlib
自动调整轴的大小并在其旁边生成第二个轴以显示颜色条。我们可以改为提供第二个轴,如下所示:
import matplotlib.pyplot as plt
import numpy as np
fig, (ax1, ax2) = plt.subplots(nrows=2)
# Some demo data
x = np.linspace(0, 18)
y = np.linspace(0, 1)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + Y
# Something on axes 1
ax1.plot(x, np.sin(x))
# Plot the pcolormesh
pcm = ax2.pcolormesh(X, Y, Z)
# create color bar: the important part!
axColor = plt.axes([box.x0 + box.width * 1.05, box.y0, 0.01, box.height])
plt.colorbar(pcm, cax=axColor, orientation="vertical")
plt.show()
我是从 this SO post 那里学到的,尽管我认为上下文有些不同。
缺点是保存的图形会有一些有趣的空白,因此您可能需要考虑替代方案,例如将颜色条定位在下方甚至图上。
我在 matplotlib 子图中遇到问题,我已经设置了这 5 个子图共享轴,它应该具有相同的长度和比例,但是,当我添加第 5 个子图的颜色条时,轴不与其他轴数学,什么我应该怎么做? 非常感谢
matplotlib
自动调整轴的大小并在其旁边生成第二个轴以显示颜色条。我们可以改为提供第二个轴,如下所示:
import matplotlib.pyplot as plt
import numpy as np
fig, (ax1, ax2) = plt.subplots(nrows=2)
# Some demo data
x = np.linspace(0, 18)
y = np.linspace(0, 1)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + Y
# Something on axes 1
ax1.plot(x, np.sin(x))
# Plot the pcolormesh
pcm = ax2.pcolormesh(X, Y, Z)
# create color bar: the important part!
axColor = plt.axes([box.x0 + box.width * 1.05, box.y0, 0.01, box.height])
plt.colorbar(pcm, cax=axColor, orientation="vertical")
plt.show()
我是从 this SO post 那里学到的,尽管我认为上下文有些不同。
缺点是保存的图形会有一些有趣的空白,因此您可能需要考虑替代方案,例如将颜色条定位在下方甚至图上。