600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > matplotlib 多子图的画法 - 设置坐标范围 - 设置坐标的显示间隔 - 设置figure

matplotlib 多子图的画法 - 设置坐标范围 - 设置坐标的显示间隔 - 设置figure

时间:2021-01-24 10:14:54

相关推荐

matplotlib 多子图的画法 - 设置坐标范围 - 设置坐标的显示间隔 - 设置figure

前言

本文实现的功能:

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

👉Drugs.csv 数据地址🔗

▲ 数据样式

from matplotlib.pyplot import MultipleLocatorimport numpy as npimport matplotlib.pyplot as pltimport 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) #将横坐标宽度设为10y_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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。