上海手机站网站建设,天津开发区建设工程管理中心网站,江西建设厅网站官网,网站子站怎么建设前言 Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库#xff0c;需要numpy库的支持#xff0c;支持用户方便设计出二维、三维数据的图形显示#xff0c;制作的图形达到出版级的标准。 其他matplotlib文章 python--matpl…前言 Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库需要numpy库的支持支持用户方便设计出二维、三维数据的图形显示制作的图形达到出版级的标准。 其他matplotlib文章 python--matplotlib(1)_码银的博客-CSDN博客 python--matplotlib(2)_码银的博客-CSDN博客 python--matplotlib(3)_码银的博客-CSDN博客 实验环境 Pycharm2020.2.5社区版,win11 正文 三维立体图形 除了要引用matplotlib外还需要引用mpl_toolkits.mplot3d库from mpl_toolkits.mplot3d import Axes3D需要在matplotlib的figure函数生成实例对象后fig plt.figure()设置其制图模式为3dfig.add_subplot(111, projection3d)。 1.简单三维图
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig plt.figure()
sd fig.add_subplot(111, projection3d)#111221222223224
plt.show()import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig plt.figure()
sd fig.add_subplot(111, projection3d)#111221222223224
X [0, 1, 2, 1, 2, 4]
Y [0, 4, 4, 1, 3, 4]
Z [0, 4, 0, 0, 2, 4]
sd.plot_trisurf(X, Y, Z)
plt.show()这个3d图可以转动方便观察 第四行代码111就是全屏或者或是正中间剩下221、222、223、224对应四个角落下面我依次截图看一下 plot_trisurfz,y,z,... :画3d曲平面的函数。 x,y,z要竖着看一列对应的是一个点的坐标。 2.三维曲面plot_trisurf薯片)
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3Dradius np.linspace(0.1, 1, 25)
#np.linspace(start 0.1, stop 1, num 25)
#stop 参数数值范围的终止点。通常其为结果的最后一个值但如果修改endpoint False, 则结果中不包括该值
angle np.linspace(0, 2 * np.pi, 60, endpointFalse)
angle np.repeat(angle[..., np.newaxis],25, axis0)
#angles[..., np.newaxis]将每个元素转化为列表,np.repeat(a,repeats,axisNone);
# repeats:复制次数;axisNoneflatten当前矩阵,axis0,增加行数列数不变,axis1,增加列数行数不变
x np.append(1, (radius * np.cos(angle)).flatten())
y np.append(0, (radius * np.sin(angle)).flatten())
#flatten()是对多维数据的降维函数
yy/2
xx/2
z np.sin(x * y)
zz/2
fig plt.figure()
sd fig.add_subplot(projection3d)
sd.plot_trisurf(x, y, z, cmapplt.get_cmap(YlOrRd), linewidth0.1)
plt.show()a.导入库
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
b.数据准备
radius np.linspace(0.1, 1, 25)
angle np.linspace(0, 2 * np.pi, 60, endpointFalse)
angle np.repeat(angle[..., np.newaxis],25, axis0)
x np.append(1, (radius * np.cos(angle)).flatten())
y np.append(0, (radius * np.sin(angle)).flatten())
yy/2
xx/2
z np.sin(x * y)
zz/2 linspace()函数 np.linspace(start 0.1, stop 1, num 25) start 参数数值范围的起始点。 stop 参数数值范围的终止点。通常其为结果的最后一个值但如果修改endpoint False, 则结果中不包括该值 num:数据数量本篇选择了25个。 flatten()函数是对多维数据的降维函数将矩阵的行之间首尾连接组成一个一维矩阵 repeat()函数 np.repeat(a,repeats,axis0) repeats:复制次数; axisNone把矩阵变成了一个一维矩阵[1,2,3,4] axis0,增加行数列数不变 axis1,增加列数行数不变 angles[..., np.newaxis]将每个元素转化为列表, c.画图
fig plt.figure()
sd fig.add_subplot(projection3d)
sd.plot_trisurf(x, y, z, cmapplt.get_cmap(YlOrRd), linewidth0.1)
plt.show() cmap调换颜色的作用 linewidth线宽 3.三维曲面标题等设置
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams[font.sans-serif] [SimHei]# 正确显示中文和负号
plt.rcParams[axes.unicode_minus] False
fig plt.figure()
sd fig.add_subplot(111, projection3d)#111221222223224
X [0, 1, 2, 1, 2, 4]
Y [0, 4, 4, 1, 3, 4]
Z [0, 4, 0, 0, 2, 4]
sd.set_xlabel(x轴)
sd.set_ylabel(y轴)
sd.set_zlabel(z轴)
plt.title(这是标题)
sd.plot_trisurf(X, Y, Z)
plt.show()我就直接使用标题1里面的代码加工了 sd.set_xlabel(x轴)#x轴函数 sd.set_ylabel(y轴)#y轴函数 sd.set_zlabel(z轴)#z轴函数 plt.title(这是标题)#添加标题函数 因为我使用了中文 plt.rcParams[font.sans-serif] [SimHei]# 正确显示中文和负号 plt.rcParams[axes.unicode_minus] False 所以还得用这两行代码要是仅仅使用英文的话删除即可。 4.小结 当初我第一次numpy库的时候的心得使用pip install matplotlib安装matplotlib库而 numpy 库我是在c:\users\yonghuming\appdata\local\programs\python\python39\scripts的目录下使用pip install numpy-1.22.4-cp39-cp39-win_amd64.whl才安装成功的。 现在我使用的是anaconda,直接把大部分的库安装好了省时省力。