【问题标题】:Create a bar chart using seaborn/matplotlib with specific characteristics使用 seaborn/matplotlib 创建具有特定特征的条形图
【发布时间】:2021-07-26 18:56:42
【问题描述】:

我想创建,而不是由以下代码生成的线图:

import pandas as pd
import seaborn as sns

d = {'P': {0: 'BO', 1: 'BO', 2: 'BO', 3: 'BO', 4: 'BO'},
     'M': {0: 'NB', 1: 'LR', 2: 'SVM', 3: 'SGD', 4: 'RF'},
     'PP': {0: '0.72', 1: '0.71', 2: '0.85', 3: '0.54', 4: '0.75'},
     'R': {0: '0.82', 1: '0.62', 2: '0.64', 3: '0.54', 4: '0.70'},
     'F': {0: '0.71', 1: '0.52', 2: '0.76', 3: '0.73', 4: '0.65'},
     'A': {0: '0.91', 1: '0.91', 2: '0.92', 3: '0.92', 4: '0.92'},
     'D': {0: 'A', 1: 'A', 2: 'A', 3: 'B', 4: 'B'}}


df = pd.DataFrame(d)
df2 = df.melt(['P', 'M', 'D'])
g = sns.relplot(data=df2, 
            x='M', 
            y="value", 
            hue='P', 
            style='D', 
            col="variable", 
            col_wrap=2,
            col_order = ['PP', 'R', 'F', 'A'],
            kind="line",
            facet_kws={'sharey': False, 'sharex': False},
            height=3,
           )
g._legend.set_bbox_to_anchor([0.9, 1])
g._legend._loc=2

具有相同特征的条形图(唯一的区别是使用条形而不是线条)。我不能使用seaborn 来做到这一点,因为唯一接受的kind 值是linesscatter。 如果我使用matplotlib,我会收到一个错误,因为我无法设置style='D'。我希望你能提供一些关于如何创建这样一个情节的建议。

【问题讨论】:

    标签: python matplotlib seaborn bar-chart


    【解决方案1】:

    Seaborn 有 catplot(),类似于 relplot(),但用于分类图,包括 kind='bar'

    df2.value = df2.value.astype(float)
    g = sns.catplot(
        data=df2,
        x='M',
        y='value',
        hue='P',
        col='variable',
        col_wrap=2,
        col_order = ['PP', 'R', 'F', 'A'],
        kind='bar',
        facet_kws={'sharey': False, 'sharex': False},
        height=3,
    )
    

    【讨论】:

    • 您好试试,谢谢您的回答。但是,我仍然遇到stile='D' 的问题,因为我无法添加它(AttributeError: 'Rectangle' object has no property 'style' )。 D 有两个不同的值,所以我需要使用不同的模式或虚线。
    • 另一种方法也可以通过将其添加为 x 轴上的第二个标签来显示“D”,而不是样式中的虚线
    猜你喜欢
    • 2021-12-27
    • 2015-07-09
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多