【问题标题】:How to plot a bar-plot with only one bar colored?如何绘制只有一个颜色的条形图?
【发布时间】:2021-01-30 08:30:17
【问题描述】:
name grade
chandler A
joey B
phoebe B
monica C
ross A
rachel B
mike C
gunther A
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

class2 = [['chandler','A'],
          ['joey','B'],
          ['phoebe','B'],
          ['monica', 'C'],
          ['ross','A'],
          ['rachel','B'],
          ['mike','C'],
          ['gunther','A']]
data= pd.DataFrame(class2, columns=['name','grade'])
print(data)
fig, ax = plt.subplots()
ax= sns.countplot(x='grade', data = data, color='yellow')
plt.show()

如果我想制作8张不同的成绩单(A4大小的小图表),并突出显示学生所属的年级类别,如何从这里着手?

编辑:我想向 gunther 展示他属于哪个组。我想向所有学生展示他们属于哪个类别。为此,我需要 8 张不同的图像来发送它们。如何获得这 8 张图片?

【问题讨论】:

  • 您能否详细说明您期望的输出类型?粗略的草图或类似的东西?
  • 我觉得this question 很有帮助
  • 问题已编辑。我希望现在更清楚了。 @Steffi Keran Rani J
  • 谢谢@Steffi Keran Rani J。你能添加关于每行在做什么的 cmets 吗?

标签: python pandas matplotlib seaborn


【解决方案1】:

如果我理解正确,你想要这样的东西:

gb = data.groupby('grade').apply(len)


for student, grade in class2:
    fig, ax = plt.subplots()
    
    colors = ['red' if a == grade else 'grey' for a in gb.index.values ]
    
    gb.plot(kind='bar', color = colors, ax=ax)
    plt.show()

【讨论】:

    猜你喜欢
    • 2019-03-23
    • 2015-11-07
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 2019-05-17
    相关资源
    最近更新 更多