"""用于验证整体趋势正确性""" #!python3 #-*- coding:utf-8 -*- import matplotlib as mpl import matplotlib.pyplot as plt from pylab import *#中文显示 from mpl_toolkits.mplot3d import Axes3D import xlrd """----------------------------得到支撑数据---------------------------""" mpl.rcParams['font.sans-serif'] = ['SimHei']#figure字体设定,正常显示中文 mpl.rcParams['axes.unicode_minus']=False#figure符号设定,正常显示负数 zhfont = matplotlib.font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc")#图示字体设置 font = { "color":"b", "style":"oblique", "size":20, "weight":"bold" } #data_t = [] data_x = [] data_y = [] data_z = [] data_1_x = [] data_1_y = [] data_1_z = [] #t_max = 0 #t_min = 0 x_max = 0 x_min = 0 y_max = 0 y_min = 0 z_max = 0 z_min = 0 x_1_max = 0 x_1_min = 0 y_1_max = 0 y_1_min = 0 z_1_max = 0 z_1_min = 0 data = xlrd.open_workbook("点集.xlsx")#打开excel table = data.sheet_by_name("处理值")#获取名称为处理值的表 table_1 = data.sheet_by_name("理论值")#获取名称为理论值的表 nrows = table.nrows#获取行数 ncols = table.ncols#获取列数 nrows_1 = table_1.nrows#获取行数 ncols_1 = table_1.ncols#获取列数 for i in range(1,nrows): #data_t.append(table.cell(i,0).value)#逐行读取第一列值,并存至data_t数组中 data_x.append(table.cell(i,1).value)#逐行读取第一列值,并存至data_t数组中 data_y.append(table.cell(i,2).value)#逐行读取第二列值,并存至data_y数组中 data_z.append(table.cell(i,3).value)#逐行读取第三列值,并存至data_z数组中 for i in range(1,nrows_1): #data_t.append(table.cell(i,0).value)#逐行读取第一列值,并存至data_t数组中 data_1_x.append(table_1.cell(i,1).value)#逐行读取第一列值,并存至data_t数组中 data_1_y.append(table_1.cell(i,2).value)#逐行读取第二列值,并存至data_y数组中 data_1_z.append(table_1.cell(i,3).value)#逐行读取第三列值,并存至data_z数组中 #t_max = max(data_t) #t_min = min(data_t) x_max = max(data_x) x_min = min(data_x) y_max = max(data_y) y_min = min(data_y) z_max = max(data_z) z_min = min(data_z) x_1_max = max(data_1_x) x_1_min = min(data_1_x) y_1_max = max(data_1_y) y_1_min = min(data_1_y) z_1_max = max(data_1_z) z_1_min = min(data_1_z) def if_max(a,b): if a >= b: max = a else: max = b return max def if_min(a,b): if a <= b: min = a else: min = b return min xmax = if_max(x_max,x_1_max) xmin = if_min(x_min,x_1_min) ymax = if_max(y_max,y_1_max) ymin = if_min(y_min,y_1_min) zmax = if_max(z_max,z_1_max) zmin = if_min(z_min,z_1_min) """----------------------------实际处理操作--------------------------""" fig = plt.figure(figsize=(8,4))#创建绘制窗口 ax = fig.gca(projection = "3d")#3d坐标轴 ax.plot(data_x,data_y,data_z,"r-",label="处理曲线",linewidth=0.5)#处理曲线 ax.plot(data_1_x,data_1_y,data_1_z,"g-",label="理论曲线",linewidth=0.5)#理论曲线 ax.set_xlabel("X",fontdict = font) ax.set_ylabel("Y",fontdict = font) ax.set_zlabel("Z",fontdict = font) ax.set_title("趋势比对图") ax.set_xlim(xmin*0.9,xmax*1.1) ax.set_ylim(ymin*0.9,ymax*1.1) ax.set_zlim(zmin*0.9,zmax*1.1) ax.legend(prop = zhfont)#图示 plt.show()