- 绘制一幅三维线图
- 结合for循环绘制多幅三维线图(在一幅图上)
- 美化图形
#将二维数据绘制三维图(三维多线图)
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,20,40)
y=2
y=y*np.ones(40)#保证与x轴的点数一致,这一步非常重要
z=np.sin(x * 2 * np.pi) / 2 + 0.5
ax = plt.figure().add_subplot(projection='3d')
ax.plot(x,y,z)#绘图
# 图像的其他参数设置
ax.view_init(15, -20)#图形展示角度
#ax.grid(False)#去掉网格
ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))#背景设置为白色
ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
#坐标及坐标轴相关设置
ax.set_xlabel('x') #x轴坐标名称及字体样式
ax.set_ylabel('y') #x轴坐标名称及字体样式
ax.set_zlabel('z') #z轴坐标名称及字体样式
#ax.set_xlim(0,20)#x轴范围
#ax.set_zlim(0,40)
ax.set_yticks([1,2,3,4,5]) #y轴刻度字体大小
plt.show()
结合for循环绘制多幅三维线图(在一幅图上)
#将二维数据绘制三维图(三维多线图)
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,20,40)
y_list=[1,3,5]
z=np.sin(x * 2 * np.pi) / 2 + 0.5
ax = plt.figure().add_subplot(projection='3d')
#结合for循环绘制多张线图
for i in range(0,3,1):
y=y_list[i]
y=y*np.ones(40)#保证与x轴的点数一致,这一步非常重要
ax.plot(x,y,z)#绘图
# 图像的其他参数设置
ax.view_init(15, -20)#图形展示角度
#ax.grid(False)#去掉网格
ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))#背景设置为白色
ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
#坐标及坐标轴相关设置
ax.set_xlabel('x') #x轴坐标名称及字体样式
ax.set_ylabel('y') #x轴坐标名称及字体样式
ax.set_zlabel('z') #z轴坐标名称及字体样式
#ax.set_xlim(0,20)#x轴范围
#ax.set_zlim(0,40)
ax.set_yticks([1,2,3,4,5]) #y轴刻度字体大小
plt.show()
美化图形
主要是调整图形清晰度,坐标轴以及图形颜色,线的粗细,添加label
#美化图形
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,20,40)
y_list=[1,3,5]
z=np.sin(x * 2 * np.pi) / 2 + 0.5
color_list=['red','tab:blue','tab:green']#颜色
font3 = {'family' : 'Arial',
'weight' : 'normal',
'size' : 14,
}
ax = plt.figure().add_subplot(projection='3d')
#结合for循环绘制多张线图
for i in range(0,3,1):
y=y_list[i]
y=y*np.ones(40)#保证与x轴的点数一致,这一步非常重要
ax.plot(x,y,z,linewidth=1,label='y='+str(y_list[i]),color=color_list[i])#绘图
# 图像的其他参数设置
ax.view_init(15, -20)#图形展示角度
ax.grid(False)#去掉网格
ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))#背景设置为白色
ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
#坐标及坐标轴相关设置
ax.legend(frameon=False,fontsize='small',loc='center left') #设置图例及图中文本显示
ax.set_xlabel('x',font3) #x轴坐标名称及字体样式
ax.set_ylabel('y',font3) #x轴坐标名称及字体样式
ax.set_zlabel('z',font3) #z轴坐标名称及字体样式
ax.set_xlim(0,20)#x轴范围
#ax.set_zlim(0,40)
ax.set_yticks([1,2,3,4,5]) #y轴刻度字体大小
plt.rcParams['figure.figsize']=(8.0,6.0)
plt.rcParams['savefig.dpi'] = 200 #图片像素
plt.rcParams['figure.dpi'] = 200 #分辨率
plt.show()



