- 官方例子
- 改进版1(对levels进行设置)
- 改进版2(美化图形)
import matplotlib.pyplot as plt import numpy as np from numpy import ma from matplotlib import ticker, cm #x,y及Z数据信息 N = 100 x = np.linspace(-3.0, 3.0, N) y = np.linspace(-2.0, 2.0, N) X, Y = np.meshgrid(x, y)#此处 *** 作是为了将x,y的数据点数一致 Z1 = np.exp(-X**2 - Y**2) Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2) Z = (Z1 - Z2) * 2 #进行绘图 fig, ax = plt.subplots() cs = ax.contourf(X, Y, Z, cmap=plt.get_cmap('Spectral')) #添加colorbar cbar = fig.colorbar(cs) plt.show()
【显示结果】
待改进/存在问题
官方例子中得到的图形里面颜色与颜色之间轮廓太清晰了,如果想要得到渐进的图形,需要对颜色间隔进行限制,即改进为:
import matplotlib.pyplot as plt import numpy as np from numpy import ma from matplotlib import ticker, cm #x,y及Z数据信息 N = 100 x = np.linspace(-3.0, 3.0, N) y = np.linspace(-2.0, 2.0, N) X, Y = np.meshgrid(x, y)#此处 *** 作是为了将x,y的数据点数一致 Z1 = np.exp(-X**2 - Y**2) Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2) Z = (Z1 - Z2) * 2 #进行绘图 fig, ax = plt.subplots() levels = np.arange(-2,2.0,0.005)#对颜色渐进细致程度进行设置,其中-2与2是色条显示的数据范围,0.005是颜色显示的细致程度 cs = ax.contourf(X, Y, Z, levels,cmap=plt.get_cmap('Spectral')) #添加colorbar cbar = fig.colorbar(cs) plt.show()
【显示结果】
对图形坐标轴坐标,刻度字体大小及刻度间隔进行设置,此外设置colorbar显示的刻度个数,并在colorbar上面添加数据label.
import matplotlib.pyplot as plt import numpy as np from numpy import ma from matplotlib import ticker, cm from matplotlib.pyplot import MultipleLocator #x,y及Z数据信息 N = 100 x = np.linspace(-3.0, 3.0, N) y = np.linspace(-2.0, 2.0, N) X, Y = np.meshgrid(x, y)#此处 *** 作是为了将x,y的数据点数一致 Z1 = np.exp(-X**2 - Y**2) Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2) Z = (Z1 - Z2) * 2 #进行绘图 fig, ax = plt.subplots() levels = np.arange(-2,2.0,0.005)#对颜色渐进细致程度进行设置,其中0与z_max是色条显示的数据范围,0.005是颜色显示的细致程度 cs = ax.contourf(X, Y, Z, levels,cmap=plt.get_cmap('Spectral')) #添加colorbar cbar = fig.colorbar(cs,fraction=0.1, pad=0.15, shrink=0.9, anchor=(0.0, 0.3))#对colorbar的大小进行设置 #设置颜色条的刻度 tick_locator = ticker.MaxNLocator(nbins=6) # colorbar上的刻度值个数 cbar.locator = tick_locator cbar.ax.tick_params(labelsize=12.5) #设置颜色条的title cbar.ax.set_title('unit',fontsize=12.5) cbar.update_ticks()#显示colorbar的刻度值 #设置坐标刻度及间隔 ax.set_xlim(-3,3) ax.set_ylim(-2,2) x_major_locator=MultipleLocator(1.2)#刻度间隔 y_major_locator=MultipleLocator(0.8) ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) #设置坐标轴标签 font3 = {'family' : 'Arial', 'weight' : 'normal', 'size' : 14, } ax.set_xlabel('$t{x}$ (unit)',font3) ax.set_ylabel('$t{y}$ (unit)',font3) #设置坐标刻度字体大小 ax.tick_params(labelsize=14) labels = ax.get_xticklabels() + ax.get_yticklabels() [label.set_fontname('Arial') for label in labels] #设置图像像素及大小 plt.rcParams['figure.figsize']=(6.0,4.0) plt.rcParams['savefig.dpi'] = 300 #图片像素 plt.rcParams['figure.dpi'] = 300 #分辨率 plt.show()
【图形结果】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)