【问题标题】:How to pick pairs of columns, plot them against each other in a bar chart pandas?如何选择成对的列,在条形图 pandas 中将它们相互绘制?
【发布时间】:2018-07-23 01:52:01
【问题描述】:

我已经导入了所需的库:

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') 标记为 'Reading'(在 x 轴上),将第二对 ('non_write_avg','rel_write_avg') 标记为 'Writing'。在图表上,每对有两种颜色:一种代表“宗教”,例如蓝色,另一种代表“非宗教”,例如绿色。我需要对数据框中的每一列都执行此操作,基本上在同一个图表上有成对的条形图并以不同的方式标记它们。这可以吗?

【问题讨论】:

  • 我不确定你的问题是否很清楚。你想要一个只有 2 个点的图表吗?什么是“宗教”和“非宗教”?你如何选择配对?你想要每对可能的值吗?

标签: python pandas dataframe matplotlib data-analysis


【解决方案1】:

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

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']
)

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

并且绘图变得非常容易并且正是您想要的。

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

希望对你有帮助

【讨论】:

  • 非常感谢卡洛斯洛斯拉斯。这正是我想要的。终于有一些人能够理解他们正在阅读的内容:)
  • 认真的谢谢你。几天来,我一直在为我的大学作业考虑这个问题,现在,就在这一秒,它解决了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2020-06-19
  • 1970-01-01
  • 2019-12-10
  • 2020-04-13
相关资源
最近更新 更多