网格图的绘制有两种方式:1.利用plt封装好的 2.面向对象的方法 图例的画法lengend 面向对象的方式生成lengend 坐标轴范围 坐标轴的刻度 日期的调整,用面向对象的方式 添加新的坐标轴
#生成多张图 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np import datetime # fig1 = plt.figure() # ax1 = fig1.add_subplot(111) # ax1.plot([1,2,3],[3,2,1]) # fig2 = plt.figure() # ax2 = fig2.add_subplot(111) # ax2.plot([1,2,3],[3,2,1]) # plt.show() #网格的画法 # y = np.arange(1,5) # plt.plot(y,y*2) # plt.grid(True,color='r',linewidth='2',linestyle='--') # #打开网格,color='r':更改颜色,linewidth='2'更改宽度,linestyle='--':更改线性 # plt.show() #图例的画法lengend # x = np.arange(1,11,1) # plt.plot(x,x*2,label='Normal') # plt.plot(x,x*3,label='Fast') # plt.plot(x,x*4,label='Faster') # plt.legend(loc=3,ncol=3) #增加图例,loc函数数字0是自适,1右上角,2左上角,3右下角,4左下角,ncol函数是分成多少列 # # plt.show() #面向对象的方式生成lengend # x = np.arange(1,20,1) # fig= plt.figure() # ax = fig.add_subplot(111) # l,=plt.plot(x,x,label='Inline laber') # # l.set_label('label via method') # ax.legend() # plt.show() #坐标轴范围 # x = np.arange(-10,11,1) # plt.plot(x,x*x) # # plt.axis([-10,10,20,60])#调整坐标范围 # plt.xlim(-20,20)#xlim只调整X轴不调整其他 # plt.ylim(0,100)#ylim只调整Y轴不调整其他轴 # plt.xlim(xmin=-15)#调整一边,另一边不给参数不会调整 # plt.show() #坐标轴刻度绘制 # x = np.arange(1,11,1) # plt.plot(x,x) # ax = plt.gca()#plt.gca()函数,获取当前图形的坐标轴 # ax.locator_params('x',nbins=20)#坐标轴刻度函数,nbing重要参数设置的是一共有多少格, # #ax.locator_params('x',nbins=20)属于面向对象的方式 # plt.locator_params('y',nbins=15)#属于交互的方式 # plt.show() #日期的调整 #用面向对象的方式 # fig = plt.figure() # start = datetime.datetime(2015,1,1) # stop = datetime.datetime(2016,1,1) # dalta = datetime.timedelta(days=1) # dates = mpl.dates.drange(start,stop,dalta) # y = np.random.randn(len(dates)) # ax = plt.gca() # ax.plot_date(dates,y,linestyle='-',marker='') # date_format = mpl.dates.DateFormatter('%Y-%m-%d') # ax.xaxis.set_major_formatter(date_format) # fig.autofmt_xdate()#自适应函数能保证图形的美观 # plt.show() #添加新的坐标轴 x = np.arange(2,20,1) y = x*x y2=np.log(x)#对X求对数 # plt.plot(x,y) # plt.twinx() # plt.plot(x,y2,'r') # # plt.show() #面向对向的方式添加新的坐标轴 fig = plt.figure() ax1 = fig.add_subplot(111) ax1.plot(x,y) ax1.set_ylabel('Y1') ax2 = ax1.twinx() ax2.plot(x,y2,'r') ax2.set_ylabel('Y2') ax1.set_ylabel('Compare Y1 and Y2') plt.show()