【问题标题】:Plot each column in a dataframe?绘制数据框中的每一列?
【发布时间】:2020-10-28 07:23:51
【问题描述】:

我有一个包含 45 列的数据框(见下文)。我想将每一列绘制为单独的条形图。我对 Python 很陌生,无法弄清楚如何做到这一点。我认为问题可能出在使用行名设置数据框的方式上。

        V1_category V2_category V3_category V4_category V5_category V6_category
Neutral 78.378378   83.783784   59.459459   27.027027   54.054054   32.432432
Painful 0.000000    0.000000    0.000000    2.702703    2.702703    13.513514   
Pleasant8.108108    10.810811   2.702703    16.216216   5.405405    2.702703
Unpleasant13.513514 5.405405    37.837838   54.054054   37.837838   51.351351" 

【问题讨论】:

  • 这能回答你的问题吗? Plot all pandas dataframe columns separately
  • 我已经多次尝试了所有这些建议,但都没有奏效。要么它创建了非常奇怪的图形,要么 x 和 y 轴的值非常奇怪,并且绝对没有显示实际数据。
  • 我在 R 中完成了它,我编写了一个循环来遍历每一列,并为列值创建一个临时数据框并绘制它。但我觉得应该有一种更简单的方法,我只需直接绘制每一列..
  • 显示您正在寻找的图片可能会有所帮助? 45x4 似乎有很多条来进行视觉区分。有时可能会使用子图(例如,参见 Seaborn)。我想知道你是否真的要 45 个堆叠的酒吧。您从 Excel 生成的示例图片可以表明您的目标。

标签: python pandas dataframe


【解决方案1】:

一种方法可能是:

# Import libraries
import pandas as pd
import matplotlib.pyplot as plt

# Create DataFrame
df = pd.DataFrame({
    'V1_category': [78.378378,0.0,8.108108,13.513514],
    'V2_category': [83.783784,0.0,10.810811,5.405405],
    'V3_category': [59.459459,0.0,2.702703,37.837838],
    'V4_category': [27.027027,2.702703,16.216216,54.054054],
    'V5_category': [54.054054,2.702703,5.405405,37.837838],
    'V6_category': [32.432432, 13.513514,2.702703, 51.351351]
    }, index =  ['Neutral','Painful','Pleasant','Unpleasant']
)
df

# Using pandas 'df.plot'
for col in df.columns:
    df[col].plot(kind='bar')
    plt.title(col)
    plt.show()

下面只显示两个图:

【讨论】:

    猜你喜欢
    • 2019-11-24
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    相关资源
    最近更新 更多