如何确定matplotlib条形图中条形的顺序
发布时间:2020-12-16 23:15:57 所属栏目:Python 来源:网络整理
导读:假设我们将一些数据读入pandas数据框: data1 = pd.read_csv("data.csv","t") 内容如下: 然后定义一个函数,它应该给我们一个水平条形图,其中条形长度代表值,条形用键标记. def barchart(data,labels): pos = arange(len(data))+.5 # the bar centers on th
假设我们将一些数据读入pandas数据框:
data1 = pd.read_csv("data.csv","t") 内容如下: 然后定义一个函数,它应该给我们一个水平条形图,其中条形长度代表值,条形用键标记. def barchart(data,labels): pos = arange(len(data))+.5 # the bar centers on the y axis barh(pos,data,align='center',height=0.25) yticks(pos,labels) 然后我们调用这个绘图函数: barchart(data1["val"],data1["key"]) 这给了我们以下情节: 现在,是什么决定了酒吧的顺序? 假设我们想要特殊顺序的条形,比如[C,A,D,F,E,B],我们如何强制执行此操作? 解决方法
我修改了barchart的原始版本.要指定条形的顺序,我使用通过ii列设置的索引:
import numpy as np import pandas as pd import matplotlib.pyplot as plt def barchart(data,labels): pos = np.arange(len(data)) + 0.5 # the bar centers on the y axis plt.barh(pos,data.sort_index(),height=0.25) plt.yticks(pos,labels.sort_index()) data1 = pd.DataFrame({'key': list('ABCDE'),'val': np.random.randn(5)}) new_keys = list('EDACB') data1['ii'] = [new_keys.index(x) for x in data1.key] data1 = data1.set_index('ii') barchart(data1["val"],data1["key"]) plt.show() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |