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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作者:高丰,英国南安普敦大学计算机博士,
- 下一篇: 过年了!!!