python的matplotlib画图,python 绘图库Matplotlib-
本文主要介绍如何使用pythonmatplotlib绘制一系列很酷的三维图像,如三维散点图、三维曲线图等。有兴趣的可以看看。
00-1010 1.绘制三维直方图2。绘制三维曲面图1例23。绘制三维散点图4。绘制三维曲线图
目录
axes3d.bar()方法用于绘制三维直方图。
可能和我们中学学的有点不同,它的语法如下:
条形图(左,高,zs=0,zdir=z ,*args,**kwargs)
其中left代表指向侧面的轴,zs代表指向我们方向的轴,height代表高度的轴。它们都需要是一维序列对象。
在调用相关方法时,比如设置轴标签,区分left对应Y轴,zs对应X轴也很重要。(也就是说,比如使用plt.xticks()方法,操作是ZS;使用plt.yticks()方法时,会操作左轴。高度对应于z轴。)
完整的代码示例如下:
将matplotlib.pyplot作为plt导入
从mpl_toolkits.mplot3d.axes3d导入axes3d
将numpy作为np导入
PLT . RC params[ axes . unicode _ MINUS ]=False
PLT . RC params[ axes . face color ]= # cc 00 ff
PLT . RC params[ font . sans-serif ]=[ STK aiti ]
#创建画布
图=plt.figure()
#创建一个3D坐标系
axes3d=Axes3D(图)
zs=范围(5)
left=np.arange(0,10)
height=np.array([])
对于范围内的I(len(zs)):
z=zs[i]
种子(一)
height=np.random.randint(0,30,size=10)
axes3d.bar(left,height,zs=z,zdir=x ,
color=[红色,绿色,紫色,黄色,蓝色,黑色,灰色,橙色,粉色,青色])
Plt。x张票(ZS,[一月,二月,三月,四月,五月])
plt.yticks(left,[A , B , C , D , E , F , G , H , I , G])
Plt.xlabel(月)
Plt.ylabel(模型)
plt.show()
图像效果如下:
1. 绘制3D柱状图
2. 绘制3D曲面图
用Plot_surface()方法画曲面图,这种方法的参数比较简单。而且x,y,z的顺序相对容易区分。
通过阅读示例代码,您可以快速掌握它的用法:
将matplotlib.pyplot作为plt导入
将numpy作为np导入
从mpl_toolkits.mplot3d导入Axes3D
PLT . RC params[ font . sans-serif ]=[ STK aiti ]
PLT . RC params[ axes . unicode _ MINUS ]=False
PLT . RC params[ axes . face color ]= # cc 00 ff
fig=plt.figure(figsize=(10,8),facecolor=#cc00ff )
ax=Axes3D(图)
=0.125
#生成表示X轴数据的列表
x=np.arange(-4.0,4.0,delta)
#生成表示Y轴数据的列表
y=n
p.arange(-3.0, 4.0, delta)
# 对x、y数据执行网格化
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
# 计算Z轴数据(高度数据)
Z = (Z1 - Z2) * 2
# 绘制3D图形
ax.plot_surface(X, Y, Z,
rstride=1, # rstride(row)指定行的跨度
cstride=1, # cstride(column)指定列的跨度
cmap=plt.get_cmap(rainbow)) # 设置颜色映射
plt.xlabel(X轴, fontsize=15)
plt.ylabel(Y轴, fontsize=15)
ax.set_zlabel(Z轴, fontsize=15)
ax.set_title(《曲面图》, y=1.02, fontsize=25, color=gold)
# 设置Z轴范围
ax.set_zlim(-2, 2)
plt.show()
示例2
更换一组数据,呈现的则是另一种艺术效果:
import matplotlib.pyplot as pltimport numpy as np
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams[font.sans-serif] = [STKAITI]
plt.rcParams[axes.unicode_minus] = False
plt.rcParams[axes.facecolor] = #cc00ff
fig = plt.figure(figsize=(12, 10), facecolor=#cc00ff)
ax = Axes3D(fig)
delta = 0.125
# 生成代表X轴数据的列表
x = np.linspace(-2, 2, 10)
# 生成代表Y轴数据的列表
y = np.linspace(-2, 2, 10)
# 对x、y数据执行网格化
X, Y = np.meshgrid(x, y)
# 计算Z轴数据(高度数据)
Z = X**2 - Y**2
# 绘制3D图形
ax.plot_surface(X, Y, Z,
rstride=1, # rstride(row)指定行的跨度
cstride=1, # cstride(column)指定列的跨度
cmap=plt.get_cmap(rainbow)) # 设置颜色映射
plt.xlabel(X轴, fontsize=15)
plt.ylabel(Y轴, fontsize=15)
ax.set_zlabel(Z轴, fontsize=15)
ax.set_title(《曲面图》, y=1.02, fontsize=25, color=gold)
plt.show()
3.绘制3D散点图
在3D曲面图示例1的基础上稍作修改。
绘制散点图使用scatter()方法,将散点颜色设置为绿色,红色边沿。
代码示例如下:
import matplotlib.pyplot as pltimport numpy as np
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams[font.sans-serif] = [STKAITI]
plt.rcParams[axes.unicode_minus] = False
plt.rcParams[axes.facecolor] = #cc00ff
fig = plt.figure(figsize=(10, 8), facecolor=#cc00ff)
ax = Axes3D(fig)
delta = 0.125
# 生成代表X轴数据的列表
x = np.arange(-4.0, 4.0, delta)
# 生成代表Y轴数据的列表
y = np.arange(-3.0, 4.0, delta)
# 对x、y数据执行网格化
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
# 计算Z轴数据(高度数据)
Z = (Z1 - Z2) * 2
# 绘制3D图形
ax.scatter(X, Y, Z,
c=green,
edgecolors=red)
plt.xlabel(X轴, fontsize=15)
plt.ylabel(Y轴, fontsize=15)
ax.set_zlabel(Z轴, fontsize=15)
ax.set_title(《散点图》, y=1.02, fontsize=25, color=gold)
# 设置Z轴范围
ax.set_zlim(-2, 2)
plt.show()
绘图效果如下:
4. 绘制3D曲线图
绘制曲线图,使用的则是我们最最最熟悉的plot()方法。
其他部分基本不变,数据部分生成三组适合我们绘图的数据,线条为金色,宽度设定为3.
代码如下:
import matplotlib.pyplot as pltimport numpy as np
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams[font.sans-serif] = [STKAITI]
plt.rcParams[axes.unicode_minus] = False
plt.rcParams[axes.facecolor] = #cc00ff
fig = plt.figure(figsize=(10, 8), facecolor=#cc00ff)
ax = Axes3D(fig)
theta = np.linspace(0, 3.14*10, 1000)
r = np.linspace(0, 1, 1000)
x = r * np.cos(theta)
y = r * np.sin(theta)
z = np.linspace(0, 4, 1000)
ax.plot(x, y, z, color=gold, lw=3)
plt.xlabel(X轴, fontsize=15)
plt.ylabel(Y轴, fontsize=15)
ax.set_zlabel(Z轴, fontsize=15)
ax.set_title(《曲线图》, y=1.02, fontsize=25, color=gold)
plt.show()
图像效果如下:
以上就是Python+Matplotlib绘制3D图像的示例详解的详细内容,更多关于Python Matplotlib 3D图像的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。