【问题标题】:Python matplotlib/seaborn plot bar chart subcategories [duplicate]Python matplotlib / seaborn绘图条形图子类别[重复]
【发布时间】:2019-09-01 22:56:11
【问题描述】:

我有一本名为data 的字典。我想绘制一个条形图,以便 ABCD 中的每一个都具有 posneg 的值。

我不希望 posneg 条相互堆叠。我要他们并排。

此外,我希望类别按其总频率的降序排序 (pos + neg)

data = {'A': {'pos': 289794, 'neg': 515063},
        'B': {'pos': 174790, 'neg': 292551},
        'C': {'pos': 375574, 'neg': 586616},
        'D': {'pos': 14932, 'neg': 8661}}

【问题讨论】:

  • 你有什么问题?你在做这种图表时有没有遇到什么问题?
  • @ImportanceOfBeingErnest 对我来说主要问题是我希望条形图的每个类别都有两个子类别(posneg
  • 我想pd.DataFrame(data).T.plot.bar() 最容易解决这个问题?
  • @ImportanceOfBeingErnest 这行得通。您能否将其添加为答案,以便我将其标记为正确答案。 matplotlib 也不应该有一个内置函数来执行此操作,因为这样的情况似乎很常见

标签: python matplotlib seaborn


【解决方案1】:
%matplotlib inline 
import matplotlib.pyplot as plt
import pandas as pd

data = {'A': {'pos': 289794, 'neg': 515063},
        'B': {'pos': 174790, 'neg': 292551},
        'C': {'pos': 375574, 'neg': 586616},
        'D': {'pos': 14932, 'neg': 8661}}
df = pd.DataFrame(data)
df = df.T
df ['sum'] = df.sum(axis=1)
df.sort_values('sum', ascending=False)[['neg','pos']].plot.bar() 

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2014-12-15
    • 2022-01-05
    • 2021-10-30
    相关资源
    最近更新 更多