【发布时间】:2021-07-28 00:49:31
【问题描述】:
我正在使用 seaborn 绘制以下值:
import pandas as pd
f = [0.31,0.75,0.75,0.75, 0.66,0.83,0.57, 0.69, 0.64,0.61, 0.81,0.21,0.71,0.71,0.64,0.55,0.72,0.74,0.73,0.77]
p = [0.53, 0.72,0.73,0.70,0.44,0.38,0.68,0.79,0.60,0.76, 0.76,0.32,0.84,0.79,0.80,0.38,0.77,0.86,0.81,0.79]
r = [0.74,0.54,0.63,0.61,0.41,0.83,0.63,0.67,0.63,0.53, 0.86,0.51,0.21,0.68,0.59,0.98,0.78,0.75,0.71,0.67]
a = [0.92,0.93,0.92,0.92,0.94,0.82,0.97,0.94,0.91,0.93, 0.97,0.91,0.94,0.93,0.94,0.71,0.93,0.91,0.85,0.94]
pp=['B','B','B','B','B','T','T','T','T','T','B','B','B','B','B','T','T','T','T','T']
m=['N','L','S','G','Rt','N','L','S','G','Rt','N','L','S','G','Rt','N','L','S','G','Rt']
d=['yes','yes','yes','yes','yes','yes','yes','yes','yes','yes','no','no','no','no','no','no','no','no','no','no']
df = {'DD':d, 'PP': pp, 'M': m, 'P': p, 'R':r, 'F':f,'A':a}
df2= pd.DataFrame(data=df)
df2 = df.melt(['PP', 'M', 'D'])
情节的代码是
g = sns.catplot(
data=df2,
x='m',
y='value',
hue='PP',
col='variable',
col_wrap=2,
col_order = ['P', 'R', 'F', 'A'],
kind='bar',
ci=None,
facet_kws={'sharey': False, 'sharex': False},
height=8.)
d_col = df2['DD'][:8]
for ax in g.axes.flat:
labels = ax.get_xticklabels()
for i,l in enumerate(labels):
tmp = l.get_text()
labels[i] = tmp + '\n' + d_col[i]
ax.set_xticklabels(labels)
sns.set_style(style='white')
然而情节似乎是错误的。另外,我看不到no 值,而只能看到yes。我的预期输出是
在绘图示例中,我为条形图使用了虚拟值。每个 m 应该同时包含 yes 和 no,并且每个子图都将重复此操作(仅出于示例目的留空)。
您能告诉我如何生成类似的输出吗?谢谢
【问题讨论】:
标签: python matplotlib seaborn visualization