如何使用 pandas 修改带有子图的图形?

How to modify figure with subplots using pandas?

每当我制作次要情节时,我习惯于单独制作每个情节并将它们全部组合在一个列表中。

Pandas 真的很酷,因为只需一行简单的代码,我就可以制作一个包含数据集所有特征直方图的图形:

hist_plot = iris.hist(alpha=0.4, figsize=(10,6))

但是,我对如何更改此图感到困惑。例如:

有没有一种方法可以做到这一点而不必单独制作每个图?我试过这个例子,但没有用:

hist_plot = iris.hist(color = ['blue', 'red', 'green', 'purple'], alpha=0.4, figsize=(10,6))

df.hist() returns 一个 two-dimensional 轴数组 objects,对应于其网格排列中的子图。要遍历它们,它们的 flat 属性很方便,因为它在平面数组中包含相同的 objects。您可以使用 zip() 并行迭代子图以及颜色和标题列表:

from sklearn.datasets import load_iris

iris = load_iris(as_frame=True)['data']

colors = ['blue', 'red', 'green', 'purple']
titles = ['SLength', 'SWidth', 'PLength', 'PWidth']

axs = iris.hist(alpha=0.4, figsize=(10, 6))

for ax, color, title in zip(axs.flat, colors, titles):
    for patch in ax.patches:
        patch.set_color(color)
    ax.set_title(title)
    ax.set_ylabel('Frequency')