如何选择一对列,在条形图熊猫中将它们相互映射?

时间:2018-02-12 19:34:06

标签: python pandas dataframe matplotlib data-analysis

我已导入所需的库:

import pandas as pd
import scipy.stats
import matplotlib.pyplot as plt
import psycopg2 as pg

我的数据框如下:

df = pd.DataFrame({'non_read_avg': [0.58], 'non_write_avg': [0.75], 'non_mat_avg':[0.45], 'non_rwm_avg':[0.14],
          'rel_read_avg': [0.68], 'rel_write_avg': [0.70], 'rel_mat_avg':[0.75], 'rel_rwm_avg':[0.34]})

我想从这个数据框中选择一对列并将它们相互绘制:

df.plot(x=['non_read_avg','rel_read_avg', 'non_write_avg','rel_write_avg'], kind='bar')

然后将第一对(' non_read_avg',' rel_read_avg')标记为'阅读' (在x轴上),将第二对(' non_write_avg',' rel_write_avg')标记为' Writing'。在图表上每对有两种颜色:一种代表宗教'说蓝色,另一个是非宗教的'说绿色。我需要对数据框中的每一列执行此操作,基本上在同一图表上有成对的条形图并以不同方式标记它们。这可能吗?

1 个答案:

答案 0 :(得分:2)

这是一个很好的数据争论问题。我的建议是以不同的方式组织数据。

df_rearanged = pd.DataFrame({
    'rel' : [0.68, 0.70, 0.75, 0.34],
    'non' : [0.58, 0.75, 0.45, 0.14]
    },index = ['read', 'write', 'mat', 'rwm']
)

通过这种方式,您可以获得数据框的行和列所需的所有信息

enter image description here

并且密谋变得简单易行正是你想要的。

df_rearanged.plot(kind='bar')
plt.show()

enter image description here

我希望这会有所帮助