为了账号安全,请及时绑定邮箱和手机立即绑定

matplotlib 用熊猫绘制多个图

matplotlib 用熊猫绘制多个图

慕尼黑的夜晚无繁华 2021-11-09 19:48:22
我目前正在尝试开发一个方便的函数,它应该为熊猫数据框中的每一列创建一个基本图,其中包含数据框中所有列的数据集中的值及其数量。def plot_value_counts(df, leave_out):  # is supposed to create the subplots grid where I can add the plots  fig, axs = plt.subplots(int(len(df)/2) + 1,int(len(df)/2) + 1)  for idx, name in enumerate(list(df)):    if name == leave_out:      continue    else:      axs[idx] = df[name].value_counts().plot(kind="bar")  return fig, axs这个片段永远运行,永不停止。我尝试查看有关 stackoverflow 的其他类似问题,但找不到任何针对我的案例的特定问题。
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

您可以axis在 plot 方法docs 中传递对象。你应该迭代列:


fig, axs = plt.subplots(int(len(df)/2) + 1,int(len(df)/2) + 1)

for idx, name in enumerate(df.columns):

    if name == leave_out:

        continue

    else:

        df[name].value_counts().plot(kind="bar", ax=axs[idx])

编辑:如果您有内存问题(似乎没有运行),请先尝试不使用子图和show每个图:


for idx, name in enumerate(df.columns):

    if name == leave_out:

        continue

    else:

        df[name].value_counts().plot(kind="bar")

        plt.show()


查看完整回答
反对 回复 2021-11-09
?
呼唤远方

TA贡献1856条经验 获得超11个赞

这是我为我的项目编写的一个函数,用于绘制熊猫数据框中的所有列。它将生成一个大小为 nx4 的网格并绘制所有列


def plotAllFeatures(dfData):

    plt.figure(1, figsize=(20,50))

    pos=1

    for feature in dfData.columns:

        plt.subplot(np.ceil(len(dfData.columns)/4),4,pos)

        dfData[feature].plot(title=feature)

        pos=pos+1

    plt.show()


查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信