【发布时间】:2021-10-14 08:17:34
【问题描述】:
我有一个如下所示的数据集:
df = {'tic': {0: 'A',
1: 'AAPL',
2: 'ABC',
3: 'ABT',
4: 'ADBE',
5: 'ADI',
6: 'ADM',
7: 'ADP',
8: 'ADSK',
9: 'AEE'},
'Class': {0: 'Manufacturing',
1: 'Tech',
2: 'Trade',
3: 'Manufacturing',
4: 'Services',
5: 'Tech',
6: 'Manufacturing',
7: 'Services',
8: 'Services',
9: 'Electricity and Transportation'},
'Color': {0: 'blue',
1: 'teal',
2: 'purple',
3: 'blue',
4: 'red',
5: 'teal',
6: 'blue',
7: 'red',
8: 'red',
9: 'orange'},
'Pooled 1': {0: 0.0643791550056838,
1: 0.05022103288830682,
2: 0.039223739393748916,
3: 0.036366693834970217,
4: 0.05772708899447428,
5: 0.05969899935101172,
6: 0.04568101605219955,
7: 0.04542272002937567,
8: 0.07138013872431757,
9: 0.029987722053015278}}
我想用存储在Pooled 1 中的值生成一个蝙蝠图。但我想用存储在Color 中的颜色为条形着色。相同Class 的所有条形应具有相同的颜色并应绘制在一起。我只展示了上面数据集的一部分。
我使用的代码如下:
fig, axs = plt.subplots(1,1,figsize = (24, 5))
tmp_df = df.sort_values('Class')
plt.bar(np.arange(len(df)), tmp_df['Pooled 1'], color = tmp_df['Color'])
我想要一个名称为Class 和颜色为Color 的图例。我知道 seaborn 可以使用 barplot 做到这一点,但它不会遵循所需的颜色。我不知道为什么,但barplot 需要很长时间来绘制数据集。不过 Matplotlib 超级快。
在这种情况下添加图例的最佳方法是什么?提前致谢!
【问题讨论】:
标签: python matplotlib plot seaborn legend