matplotlib 多子图的画法 - 设置坐标范围 - 设置坐标的显示间隔 - 设置figure的大标题 - 设置x轴和y轴的名称 - df.groupby
生活随笔
收集整理的这篇文章主要介绍了
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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 作者:高丰,英国南安普敦大学计算机博士,
- 下一篇: 过年了!!!