强制所有子图在使用Pandas绘图时采用相同的坐标范围
我正在使用Pandas中的“by”选项来创建像下面这样的分面图:
import pandas as pd
pd.Series(randn(1000)).hist(by=randint(0, 4, 1000), figsize=(6, 4))
这很好。不过,我希望所有图的x轴和y轴都能保持一致。有没有什么内置的方法可以做到这一点?在ggplot中,我会使用scales="fixed"
选项,但在Pandas的绘图中似乎没有类似的功能。
当然,我可以写几行简单的代码来实现这个功能,但如果有自动化的方法可以做到这一点,我更想使用它。
1 个回答
8
你想要共享的x轴和y轴,可以通过在调用hist
函数时传入sharex=True
和sharey=True
来实现,这些是一些设置选项。
这样做会通过matplotlib
的子图功能来创建子图。相比手动调整子图的位置和去掉坐标轴,这种方法的好处是你可以使用matplotlib
提供的丰富工具来操作坐标轴,比如:
import matplotlib.pyplot as plt
import pandas as pd
pd.Series(randn(1000)).hist(by=randint(0, 4, 1000), figsize=(6, 4),
sharex=True, sharey=True)
ax = plt.gca()
ax.set_xlim(-10, 10)
ax.set_ylim(0, 100)