【发布时间】:2017-06-11 23:12:26
【问题描述】:
我有一个使用 pandas Dataframe 中的不同列创建的多个条形图。
fig1 = plt.figure()
ypos = np.arange(len(dframe))
colorscheme = seaborn.color_palette(n_colors=4)
accuracyFig = fig1.add_subplot(221)
accuracyFig.bar(ypos,dframe['accuracy'], align = 'center', color=colorscheme)
accuracyFig.set_xticks([0,1,2,3])
accuracyFig.set_ylim([0.5,1])
sensitivityFig = fig1.add_subplot(222)
sensitivityFig.bar(ypos, dframe['sensitivity'], align = 'center',color=colorscheme )
sensitivityFig.set_xticks([0,1,2,3])
sensitivityFig.set_ylim([0.5,1])
specificityFig = fig1.add_subplot(223)
specificityFig.bar(ypos, dframe['specificity'], align = 'center', color=colorscheme)
specificityFig.set_xticks([0,1,2,3])
specificityFig.set_ylim([0.5,1])
precisionFig = fig1.add_subplot(224)
precisionFig.bar(ypos, dframe['precision'], align = 'center', color=colorscheme)
precisionFig.set_xticks([0,1,2,3])
precisionFig.set_ylim([0.5,1])
其中dframe 是具有整数值的熊猫数据框。这给我输出了下图。
每种颜色对应一个分类器模型 - perceptron,C2,C3 and C4,它们存储在熊猫dframe['name']中
现在我想为整个图形绘制一个图例。我尝试了以下
leg = plt.legend(dframe['name'])
关于如何绘制单个图例并将其放在图下方 2 列中的任何帮助。
这是我的数据框
name accuracy sensitivity specificity precision
0 perceptron 0.820182164169 0.852518881235 0.755172413793 0.875007098643
1 DecisionTreeClassifier 1.0 1.0 1.0 1.0
2 ExtraTreesClassifier 1.0 1.0 1.0 1.0
3 RandomForestClassifier 0.999796774253 0.999889340748 0.999610678532 0.999806362379
【问题讨论】:
-
将图例下方的图例放置为2X2矩阵而不是1X4向量
-
它只显示感知器标签,其余标签不显示。就像上图一样
-
添加到问题中
-
[['perceptron', 'DecisionTreeClassifier', 'ExtraTreesClassifier', 'RandomForestClassifier'], [0.82018216416945333, 1.0, 1.0, 0.99979677425314539], [0.85251888123495723, 1.0, 1.0, 0.99988934074750324], [0.7551724137931034, 1.0, 1.0, 0.99961067853170193], [0.87500709864273951, 1.0, 1.0, 0.99980636237897647]] -
我已使用
dframe.values.T.tolist()将其转换为列表
标签: python pandas matplotlib dataframe seaborn