我想创建一个函数或for循环,它将为数据帧的每一列显示一个排序的水平条形图。下面可以看到一列的代码示例。savefig()是一个很好的工具,但不是必需的
frame['Population-current year']是数据框中的一列。就语法而言,我似乎无法为循环制定必要的结构
数据帧头:
本年地名人口
圣达菲82980.0
纳什维尔戴维森654187.0
桑迪亚公园72.0
石山6209.0
阿什维尔89318.0
2010年本年度地名人口百分比变化\
圣达菲0.2277
纳什维尔戴维森0.1130
桑迪亚公园0.0286
石山0.0362
阿什维尔0.0896
地名人口年龄中位数住房年龄中位数\
圣达菲42.8 34.0
纳什维尔戴维森34.138.0
桑迪亚公园60.2 24.0
石山38.8 38.0
阿什维尔38.6 44.0
提前谢谢
ax = (frame['Population-current year']/1000).sort_values().plot(kind='barh', figsize=(8, 10), color='#86bf91', zorder=2, width=0.85)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.tick_params(axis="both", which="both", bottom="off", top="off", labelbottom="on", left="off", right="off", labelleft="on")
vals = ax.get_xticks()
for tick in vals:
ax.axvline(x=tick, linestyle='dashed', alpha=0.4, color='#eeeeee', zorder=1)
ax.set_title("Population - 2017 (1000s)", weight='bold', size=12)
ax.set_xlabel("Population - 2017 (1000s)", labelpad=20, weight='bold', size=12)
ax.set_ylabel("City", labelpad=20, weight='bold', size=12)
ax.xaxis.set_major_formatter(StrMethodFormatter('{x:,g}'))
plt.savefig('pop_chart.png')
目前没有回答
相关问题 更多 >
编程相关推荐