我认为既然您已经在使用matplotlib,那么在pandas中进行数据争用也更有意义。在In [101]: JSON = '''[{"first":"A","second":"1","third":"2"},
.....: {"first":"B","second":"1","third":"2"},
.....: {"first":"C","second":"2","third":"2"},
.....: {"first":"D","second":"3","third":"2"},
.....: {"first":"E","second":"3","third":"2"},
.....: {"first":"F","second":"3","third":"2"},
.....: {"first":"G","second":"3","third":"2"},
.....: {"first":"H","second":"4","third":"2"},
.....: {"first":"I","second":"4","third":"2"},
.....: {"first":"J","second":"0","third":"2"},
.....: {"first":"K","second":"0","third":"2"},
.....: {"first":"L","second":"0","third":"2"},
.....: {"first":"M","second":"0","third":"2"},
.....: {"first":"N","second":"0","third":"2"}]
.....: '''
In [102]: df = pd.read_json(JSON)
In [103]: df
Out[103]:
first second third
0 A 1 2
1 B 1 2
2 C 2 2
3 D 3 2
4 E 3 2
5 F 3 2
6 G 3 2
7 H 4 2
8 I 4 2
9 J 0 2
10 K 0 2
11 L 0 2
12 M 0 2
13 N 0 2
In [104]: df.groupby('second').size().plot(kind='bar')
Out[104]:
条形图将您的类别按正确的顺序排列。在
但是,如果您只需要一个通用方法来排列条形图,则可以构建一个临时数据帧,对其进行排序,然后绘制:
^{pr2}$