如何使用 pandas 修改带有子图的图形?
How to modify figure with subplots using pandas?
每当我制作次要情节时,我习惯于单独制作每个情节并将它们全部组合在一个列表中。
Pandas 真的很酷,因为只需一行简单的代码,我就可以制作一个包含数据集所有特征直方图的图形:
hist_plot = iris.hist(alpha=0.4, figsize=(10,6))
但是,我对如何更改此图感到困惑。例如:
- 使每个绘图具有不同的颜色:
color = ['blue', 'red', 'green', 'purple']
- 给每个地块一个不同的标题:
title = ['SLength', 'SWidth', 'PLength', 'PWidth']
- 为每个 y 轴添加“频率”标签
有没有一种方法可以做到这一点而不必单独制作每个图?我试过这个例子,但没有用:
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')
每当我制作次要情节时,我习惯于单独制作每个情节并将它们全部组合在一个列表中。
Pandas 真的很酷,因为只需一行简单的代码,我就可以制作一个包含数据集所有特征直方图的图形:
hist_plot = iris.hist(alpha=0.4, figsize=(10,6))
但是,我对如何更改此图感到困惑。例如:
- 使每个绘图具有不同的颜色:
color = ['blue', 'red', 'green', 'purple']
- 给每个地块一个不同的标题:
title = ['SLength', 'SWidth', 'PLength', 'PWidth']
- 为每个 y 轴添加“频率”标签
有没有一种方法可以做到这一点而不必单独制作每个图?我试过这个例子,但没有用:
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')