我试图更好地理解在结合 Matplotlib 和 Pandas 进行绘图时,图形、轴和 plt 是如何组合在一起的。所接受的在这里回答 https://stackoverflow.com/questions/29568110/how-to-use-ax-with-pandas-and-matplotlib/29568196#29568196帮助我以面向对象的方式连接 Matplotlib 和 Pandas,我通过这一行理解:
fig, ax = plt.suplots()
df.plot(ax=ax)
但当我深入研究时在这里回答 https://stackoverflow.com/questions/35677767/understanding-matplotlib-plt-figure-axarr/35685864#35685864把我赶走了。具体来说,我仍然需要直接调用 plt 的方法,这些方法不适用于图形或轴。例子:
fig, ax = plt.subplots()
df[['realgdp','trend']]["2000-03-31":].plot(figsize=(8,8), ax=ax)
ax.set_title('Real GDP & Trend')
ax.set_ylabel('Readl GDP')
plt.xticks(rotation=45)
如果我尝试从 ax 或 Fig 调用 xticks(rotation=45) ,则会收到一条错误,表明 ax 和 Fig 都没有 xticks 方法。我上面的解决方案有效,但我不明白为什么。
当我打字时plt.xticks(rotations=45)
,该信息发送到哪里?为什么评论里的在这里回答 https://stackoverflow.com/questions/35677767/understanding-matplotlib-plt-figure-axarr/35685864#35685864“当您使用 pyplot 模块上可用的函数时,您正在绘制‘当前图形’和‘当前轴’”在这种情况下不适用?为什么我需要直接调用关闭plt?
plt.xticks()
仅适用于“当前”斧头。你应该使用ax.set_xticks()
, ax.set_xticklabels()
and ax.tick_params()
反而。
plt.xticks()
是一个相当古老的函数,但仍然受到支持,模仿类似的 matlab 代码,诞生于人们只在单个绘图上绘图的时代。较新的功能更通用,有更多选项。
简而言之:您不需要打电话plt
直接邀请您使用ax
函数代替。打电话时plt.xticks()
,它被重新路由到当前活动的ax
(通常是最后一个创建的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)