Matplotlib未设置最小y轴

3

这可能是一个简单的问题,但是设置底部y轴似乎不起作用。我相信这是因为我使用了面积图,但我不确定如何解决它。以下是我的当前代码。

fig, (ax1, ax2) = plt.subplots(2, sharex=True, sharey=True)
fig.suptitle('SPY Chart')
ax1.set_ylim(bottom=150, top=450)
spyData['Close'].plot(kind='area',ax=ax1)
spyData['Close'].plot(ax=ax2)

修改顶部的值完全可行,但底部无法修改。


使用 sharey=True,两个图的 y 轴是共享的。更改一个轴将自动更改另一个轴。如果这不是您想要的,请设置 sharey=False(默认值)。 - JohanC
@JohanC 我希望它可以共享,但是150对于两者来说是底线。如果启用了sharey,这是否可行? - John
1个回答

1

设置ylim后调用的绘图命令会再次更改这些限制。在绘图命令之后调用set_ylim()可以解决这个问题:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

spyData = pd.DataFrame({'Close': np.random.normal(0.1, 10, 200).cumsum() + 200})
spyData.set_index(pd.date_range('20200101', periods=len(spyData)), inplace=True)

fig, (ax1, ax2) = plt.subplots(2, sharex=True, sharey=True)
spyData['Close'].plot(kind='area', ax=ax1)
spyData['Close'].plot(ax=ax2)
ax1.set_ylim(bottom=150, top=450)
ax1.margins(x=0) # suppress white space left and right
plt.show()

example plot


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接