我想在多个子图中的一个子图中更改xlimits和xticks,但它仅适用于xticks。
我正在绘制许多图,并且几乎所有图在一个图中都具有相同的x轴,因此决定使用plt.subplots(sharex=True)
。对于一个图,我想在x轴上使用不同的限制和刻度。为此,我使用ax.get_shared_x_axes().remove(ax)
从其他sharex图中删除了该图。
import matplotlib.pyplot as plt
fig, axes = plt.subplots(4,10,sharey=True, sharex=True)
axes_flat = axes.flat
for i in range(0,33) :
xs = axes_flat[i]
xs.plot([0,1,2],[2,3,4])
xs.set_xticks([0,2])
xs.set_xlim([0,4])
#leave some room between normal plots and plots with different xlims:
axes_flat[34].axis('off')
axes_flat[35].axis('off')
# Remove this plot from the shared axes and change xlims and xticks:
axes_flat[36].get_shared_x_axes().remove(axes_flat[36])
axes_flat[36].set_xticks([0,1])
axes_flat[36].set_xlim([0,2])
axes_flat[38].axis('off')
axes_flat[39].axis('off')
plt.show()
这对于x限制是预期的,但对于xticks却不起作用。更改一个子图中的刻度会覆盖所有其他刻度,而x限制仅在我想要的子图中更改。我不明白为什么在这种情况下set_xticks
和set_xlim
的行为会有所不同。在仍然使用plt.subplots(sharex=True)
的同时,有没有办法解决此问题?
答案 0 :(得分:0)
我不知道是否可以使用tkinter
来做到这一点,但是我做了一些类似的事情,您可以这样做:
plt.subplots(shared=True)
我希望这会有所帮助。