Python 使用具有特定特征的seaborn/matplotlib创建条形图

Python 使用具有特定特征的seaborn/matplotlib创建条形图,python,matplotlib,seaborn,bar-chart,Python,Matplotlib,Seaborn,Bar Chart,我想创建,而不是由以下代码生成的线图: 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'},

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

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
来执行此操作,因为唯一接受的
种类
值是
散点
。 如果我使用
matplotlib
,我会得到一个错误,因为我无法设置
style='D'
。我希望您能就如何创建这样的绘图提供一些建议。

Seaborn拥有类似于
relplot()
但对于分类绘图,包括
kind='bar'

df2.value=df2.value.astype(浮点)
g=sns.catplot(
数据=df2,
x='M',
y='value',
hue='P',
col='variable',
col_wrap=2,
列顺序=['PP','R','F','A'],
金条,
facet_kws={'sharey':False,'sharex':False},
高度=3,
)

Hi try,谢谢您的回答。但是,
stile='D'
仍然存在问题,因为我无法添加它(
AttributeError:'Rectangle'对象没有属性'style'
)。对于
D
,我有两个不同的值,因此我需要使用不同的图案或虚线。另一种方法是通过在x轴上添加“D”作为第二个标签来显示样式中的虚线,而不是虚线