matplotlib 用熊猫绘制多个图

我目前正在尝试开发一个方便的函数,它应该为熊猫数据框中的每一列创建一个基本图,其中包含数据框中所有列的数据集中的值及其数量。


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 的其他类似问题,但找不到任何针对我的案例的特定问题。


慕尼黑的夜晚无繁华
浏览 153回答 2
2回答

凤凰求蛊

您可以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()

呼唤远方

这是我为我的项目编写的一个函数,用于绘制熊猫数据框中的所有列。它将生成一个大小为 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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python