用Python的Matplotlib库绘制动态曲线图
入门教程、案例源码、学习资料、读者群
请访问: python666.cn
01. 引言
02. 数据处理
03. 数据可视化
绘图的核心代码(以china为例)主要在第16-24行,详细解释如下:
idx = data_test.time折线图:
ax.plot( idx, data_test['china'],color = '#FF5872',lw = 4)#折线图其中,x 和 y 参数分别设置为数据的 time 列和 china 列,color 和线宽 lw 属性则是为了美化折线图。
散点图:
ax.scatter(idx.tolist()[-1],data_test['china'].tolist()[-1],color='#FF5872',edgecolor ='black',s = 280,lw = 2.5,zorder =4)#散点图散点图的绘制则需知道我们只需要绘制最后一个散点,即获取最后一个数据,因此scatter的x,y均有[-1]的索引,当然,我们需在之前使用tolist()方法转变成数据列表形式,填充颜色 color、散点边框颜色 edgecolor、散点大小 s、和线宽 lw 均可根据自己需要进行定制化设置。这里需要注意的是zorder属性的设置,这里设置zorder=4,表示散点图绘制在折线图之后,即散点图压在折线图之上,使绘图更加美观。
文本(国家名):
ax.text(idx.tolist()[-1]+5,data_test['china'].tolist()[-1]-250,'china',size=15,c= '#FF5872',va='top',ha='left',fontweight = 'bold')#国家名这里的 x 和 y 属性则是根据实际情况进行慢慢调试 ,其他的属性则是美化图表使用。
文本(数值):
ax.text(idx.tolist()[-1]+5,data_test['china'].tolist()[-1]-250,'china',size=15,c= '#FF5872',va='top',ha='left',fontweight = 'bold')#国家名由于数据较大,这里
':{:,.0f}'.format(data_test['china'].tolist()[-1])对文本进行格式化操作,其他属性则根据自己需求进行设置即可。
部分详细解释如下:
第66-71行则是自定义 y 轴的刻度比例范围,由于,较早年份的数据较为集中,使图表绘制集中在一块,影响美观,特经此过程进行设置,而这也是 matplotlib 3.1 版本新添加的内容。
第 53行使用 ax.axvline()为动态图表添加一条推进线。
第 54-64行则是对图表刻度、轴脊等 属性进设置。
第 75行采用ax.yaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.0f}'))定制化刻度标签形式,此方法对绘制定制化的刻度标签非常有用,希望感兴趣的同学们可以多看看官网的教程。
第86行 ax.set_axisbelow(True)设置网格线等属性位于图表图层之下。
下面给出一年份数据绘制的曲线图结果:
备注:要想生成这种暗黑背景风格的图表,则可通过以下设置完成:
# 设置画布figure颜色plt.figure(facecolor='#1D1E23',edgecolor='#1D1E23')# 对Axis进行背景颜色设置ax.set_facecolor('#373E4B')
04. 总结
作者:宁俊骐
本书从 Python 和 Excel 结合使用的角度讲解处理分析数据的思路、方法与实战应用。不论是希望从事数据分析岗位的学习者,还是其他职业的办公人员,都可以通过本书的学习掌握 Python 分析数据的技能。书中创新性地将 ChatGPT 引入到教学当中,用 ChatGPT 答疑并提供实训代码,并介绍了使用 ChatGPT 辅助学习的一些实用技巧,给学习者带来全新的学习方式。
读者朋友们购买后可在后台联系我,加入读者交流群,Crossin会为你开启陪读模式,解答你在阅读本书时的一切疑问。
感谢转发和点赞的各位~
_往期文章推荐_
【教程】: python