【Python】使用matplotlib绘制折线图(单图和多图)
1.单图的绘制
数据为:
代码如下:
import pandas as pd import matplotlib.pyplot as plt catering = r'C:\Users\xxx\Desktop\data\经费.xls' df = pd.read_excel(catering) #中文字体 plt.rcParams['font.sans-serif'] = 'SimHei' plt.rcParams['axes.unicode_minus'] = False yearlist=[] neibulist=[] for ax in range(0,10): yearlist.append(int(df['年份'][ax+0:ax+1])) neibulist.append(float(df['所有企业经费内部支出(万元)'][ax+0:ax+1])) plt.figure(figsize=(8,4))#画布大小 #x轴刻度(全部显示) year=[2009,2010,2011,2012,2013,2014, 2015,2016,2017,2018,2019,2020] plt.xticks(year,year,size=12)#第1个参数代表位置,第2个代表名称 plt.ylim(200000,600000) #y轴坐标系 plt.plot(yearlist,neibulist,marker='o') plt.title("xx省2010-2019年xx经费内部支出",size=16)#标题 plt.xlabel('年份(年)',size=12)#x轴标签及其大小 plt.ylabel('经费(万元)',size=12)#y轴标签及其大小 #设置图片的右边框和上边框为不显示 plt.gca().spines['right'].set_color('none') plt.gca().spines['top'].set_color('none') plt.show()
结果:
2.多图的绘制
数据:
代码:
import pandas as pd import matplotlib.pyplot as plt catering = r'C:\Users\xxx\Desktop\data\经费.xls' df = pd.read_excel(catering) plt.rcParams['font.sans-serif'] = 'SimHei'#中文字体 plt.rcParams['axes.unicode_minus'] = False fig,axj=plt.subplots(1,2,figsize=(12,6),dpi=120) #一行二列,长12宽6,分辨率120 axes = axj.flatten() yearlist=[] neibulist=[] waibulist=[] for ax in range(0,10): yearlist.append(int(df['年份'][ax+0:ax+1])) neibulist.append(float(df['所有企业经费内部支出(万元)'][ax+0:ax+1])) waibulist.append(float(df['所有企业经费外部支出(万元)'][ax+0:ax+1])) #第一个子图 axes[0].set_ylim(0,600000) #y轴坐标系 axes[0].plot(yearlist,neibulist,marker='o',label = '内部支出') axes[0].set_title("经费内部支出") axes[0].set_xlabel('年份(年)',size=12)#x轴标签及其大小 axes[0].set_ylabel('经费(万元)',size=12)#y轴标签及其大小 #第二个子图 axes[1].set_ylim(0,30000) #y轴坐标系 axes[1].plot(yearlist,waibulist,marker='s',label = '外部支出') axes[1].set_title("经费外部支出") axes[1].set_xlabel('年份(年)',size=12)#x轴标签及其大小 axes[1].set_ylabel('经费(万元)',size=12)#y轴标签及其大小 #不显示边框 axes[0].spines['right'].set_color('none') axes[0].spines['top'].set_color('none') axes[1].spines['right'].set_color('none') axes[1].spines['top'].set_color('none') #总标题 plt.suptitle('xxxR&D经费支出情况',size=16) plt.show()
结果: