Pandas柱状图:每一列的柱状图作为一个大图的子图

2024-09-24 02:26:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用下面的代码,试图将我的熊猫数据帧dfu中的每一列的直方图绘制为一个大数字的子块。

%matplotlib notebook
from itertools import combinations
import matplotlib.pyplot as plt

fig, axes = plt.subplots(len(df_in.columns) // 3, 3, figsize=(12, 48))
for x in df_in.columns:
    df_in.hist(column = x, bins = 100)

fig.tight_layout()

但是,直方图没有显示在子批次中。有人知道我错过了什么吗?谢谢!


Tags: columns数据代码inimportdfmatplotlibfig
2条回答

我不能评论伯翰的回答,因为我没有足够的名誉点。他的答案的问题是axes不是一维的,它包含轴三元组,因此需要展开:

%matplotlib notebook
from itertools import combinations
import matplotlib.pyplot as plt

fig, axes = plt.subplots(len(df_in.columns)//3, 3, figsize=(12, 48))

i = 0
for triaxis in axes:
    for axis in triaxis:
        df_in.hist(column = df_in.columns[i], bins = 100, ax=axis)
        i = i+1

您需要指定要打印到的轴。这应该有效:

fig, axes = plt.subplots(len(df_in.columns)//3, 3, figsize=(12, 48))
for col, axis in zip(df_in.columns, axes):
    df_in.hist(column = col, bins = 100, ax=axis)

相关问题 更多 >