我有两个系列',它包含相同的数据,但它们包含不同数量的此数据。我想通过制作条形图来比较这两个系列,两者进行比较。以下是我到目前为止所做的工作。
import matplotlib.patches as mpatches
fig = plt.figure()
ax = fig.add_subplot(111)
width = 0.3
tree_amount15.plot(kind='bar', color='red', ax=ax, width=width, position=1, label='NYC')
queens_tree_types.plot(kind='bar', color='blue', ax=ax, width=width, position=0, label='Queens')
plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
ncol=2, mode="expand", borderaxespad=0.)
ax.set_ylabel('Total trees')
ax.set_xlabel('Tree names')
plt.show()
这给了我以下图表:
我遇到的问题是,即使每个系列中的所有“树名”都相同,“总树”当然也是不同的,例如,#5(Callery pear)只有#5 in 'tree_amount15','queens_tree_types'中的#3,依此类推。如何订购系列,使其与图表上显示的正确标签对应?因为现在,系列中的标签首先被添加,如图所示,这使得第二个系列的值具有误导性。
任何提示?
这是两个系列的外观,当我执行value_counts()时。
tree_amount15:
London planetree 87014
honeylocust 64264
Callery pear 58931
pin oak 53185
Norway maple 34189
littleleaf linden 29742
cherry 29279
Japanese zelkova 29258
ginkgo 21024
Sophora 19338
red maple 17246
green ash 16251
American linden 13530
silver maple 12277
sweetgum 10657
northern red oak 8400
silver linden 7995
American elm 7975
maple 7080
purple-leaf plum 6879
queens_tree_types:
London planetree 31111
pin oak 22610
honeylocust 20290
Norway maple 19407
Callery pear 16547
cherry 13497
littleleaf linden 11902
Japanese zelkova 8987
green ash 7389
silver maple 6116
ginkgo 5971
Sophora 5386
red maple 4935
American linden 4769
silver linden 4146
purple-leaf plum 3035
maple 2992
northern red oak 2697
sweetgum 2489
American elm 1709
答案 0 :(得分:2)
您可以从使用树名索引的两个系列中创建数据框。默认情况下,pandas会按字母顺序对索引进行排序,因此我们告诉它使用NYC的值进行排序。将这两个系列作为列,我们可以使用plot
方法的单个调用将它们放在同一个图表上。
df = pd.concat([tree_amount15, queens_tree_types], axis=1).rename_axis(
{0:'NYC', 1:'Queens'}, axis='columns') # sets the column names
df.sort_values('NYC', ascending=False) # sort the df using NYC values
df.plot.bar(color=['red','blue'])