强制所有子图在使用Pandas绘图时采用相同的坐标范围

4 投票
1 回答
3361 浏览
提问于 2025-04-21 08:54

我正在使用Pandas中的“by”选项来创建像下面这样的分面图:

import pandas as pd
pd.Series(randn(1000)).hist(by=randint(0, 4, 1000), figsize=(6, 4))

enter image description here

这很好。不过,我希望所有图的x轴和y轴都能保持一致。有没有什么内置的方法可以做到这一点?在ggplot中,我会使用scales="fixed"选项,但在Pandas的绘图中似乎没有类似的功能。

当然,我可以写几行简单的代码来实现这个功能,但如果有自动化的方法可以做到这一点,我更想使用它。

1 个回答

8

你想要共享的x轴和y轴,可以通过在调用hist函数时传入sharex=Truesharey=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)

设置了一些坐标轴属性的示例

撰写回答