欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

matplotlib 多子图的画法 - 设置坐标范围 - 设置坐标的显示间隔 - 设置figure的大标题 - 设置x轴和y轴的名称 - df.groupby

发布时间:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 matplotlib 多子图的画法 - 设置坐标范围 - 设置坐标的显示间隔 - 设置figure的大标题 - 设置x轴和y轴的名称 - df.groupby 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言

本文实现的功能:

  • 多子图的画法
  • 设置坐标范围
  • 设置坐标的显示间隔
  • 设置figure的大标题
  • 设置x轴和y轴的名称

👉Drugs.csv 数据地址🔗


▲ 数据样式


from matplotlib.pyplot import MultipleLocator import numpy as np import matplotlib.pyplot as plt import pandas as pddata = pd.read_csv('Drugs.csv') df = pd.DataFrame(data) # 以'YYYY'和'State'对'DrugReports'进行统计 reports = df.groupby(['YYYY', 'State'])['DrugReports'].sum().unstack('State') # 以‘State’列为目标消除堆叠max_y = reports.max().max() #子图中纵坐标最大值 min_y = reports.min().min() #子图中纵坐标最小值 max_x = reports.idxmax().max()#子图中横坐标最大值 min_x = reports.idxmin().min()#子图中横坐标最小值# 获取'State'的值['KY', 'OH', 'PA', 'VA', 'WV'] value_State = reports.columns# 画图 # 标题颜色样式 colors = plt.get_cmap('tab10') plt.figure(figsize=(20,10))x_major_location = MultipleLocator(100) #将横坐标宽度设为10 y_major_location = MultipleLocator(1000) #将纵坐标宽度设为10for i, value in enumerate(value_State):x = reports.indexy = reports[value]plt.subplot(2,3,i+1) # 记得是i+1,因为子图的下标是从1开始的。plt.plot(x,y,color=colors(i))plt.fill_between(x,y,facecolor='skyblue',alpha=0.4)plt.title(value,loc='right',color=colors(i))# 修改每个子图的刻度宽度axis = plt.gca() # 获取当前axisax.xaxis.set_major_locator(x_major_location)ax.yaxis.set_major_locator(y_major_location )# 设置每个子图的刻度总范围plt.xlim(min_x,max_x)plt.ylim(min_y,max_y)plt.grid() # 给figure加横纵轴的名称,范围在[0,1]之间 plt.figtext(0.5, 0.05, 'Year', fontsize=15) plt.figtext(0.05, 0.5, 'DrugReports', va='center', rotation='vertical',fontsize=15)# figure的标题 plt.suptitle('DrugReport of each state every year', fontsize=20)plt.show()

总结

以上是生活随笔为你收集整理的matplotlib 多子图的画法 - 设置坐标范围 - 设置坐标的显示间隔 - 设置figure的大标题 - 设置x轴和y轴的名称 - df.groupby的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。