matplotlib绘制常用三维图(代码片段)

赵广陆 赵广陆     2022-10-23     466

关键词:

目录


1 三维图像的绘制简介

Matplotlib使用和绘制二维图表:https://blog.csdn.net/ZGL_cyy/article/details/125705060

matplotlib支持绘制三维线框图, 三维曲面图, 三维散点图. 需要使用axes3d提供3d坐标系.

from mpl_toolkits.mplot3d import axes3d
ax3d = mp.gca(projection='3d')

ax3d.plot_wireframe()	# 绘制3d线框图
ax3d.plot_surface()		# 绘制3d曲面图
ax3d.scatter()			# 绘制3d散点图

2 三维线框图

ax3d.plot_wireframe(
    x, y, 	# x,y网格点坐标矩阵
    z, 		# z为每个坐标点的值
	rstride=30,	# 行跨距
    cstride=30, # 列跨距
    linewidth=1,
    color=''
)	

案例演示:

"""
三维线框图
"""
import numpy as np
import matplotlib.pyplot as mp
from mpl_toolkits.mplot3d import axes3d

# 生成网格点坐标矩阵
n = 1000
x, y = np.meshgrid(np.linspace(-3, 3, n),
				   np.linspace(-3, 3, n))
# 根据x,y 计算当前坐标下的z高度值
z = (1-x/2 + x**5 + y**3) * np.exp(-x**2 -y**2)

mp.figure('Wireframe', facecolor='lightgray')
ax3d = mp.gca(projection='3d')
ax3d.set_xlabel('X', fontsize=14)
ax3d.set_ylabel('Y', fontsize=14)
ax3d.set_zlabel('Z', fontsize=14)
ax3d.plot_wireframe(x, y, z, rstride=10, 
	cstride=10,color='dodgerblue')
mp.show()

3 三维曲面图

ax3d.plot_surface(
    x, y, 	# x,y网格点坐标矩阵
    z, 		# z为每个坐标点的值
	rstride=30,	# 行跨距
    cstride=30, # 列跨距
    cmap='jet'
)	

案例演示:

"""
三维曲面图
"""
import numpy as np
import matplotlib.pyplot as mp
from mpl_toolkits.mplot3d import axes3d

# 生成网格点坐标矩阵
n = 1000
x, y = np.meshgrid(np.linspace(-3, 3, n),
				   np.linspace(-3, 3, n))
# 根据x,y 计算当前坐标下的z高度值
z = (1-x/2 + x**5 + y**3) * np.exp(-x**2 -y**2)

mp.figure('Surface', facecolor='lightgray')
ax3d = mp.gca(projection='3d')
ax3d.set_xlabel('X', fontsize=14)
ax3d.set_ylabel('Y', fontsize=14)
ax3d.set_zlabel('Z', fontsize=14)
ax3d.plot_surface(x, y, z, rstride=50, 
	cstride=50, cmap='jet')
mp.show()

4 三维散点图

ax3d.scatter(
	x, y, z,  		 # x,y,z  确定一组散点坐标
    marker='',		 # 点型
    s = 60,			 # 点的大小
    edgecolor='',	 # 边缘色
    facecolor='',	 # 填充色
    zorder=3,		 # 绘制图层编号 
    c=d,			 # 设置过渡性颜色
    cmap='jet'		 # 颜色映射
)
12345678910

案例演示:

"""
三维散点图
"""
import numpy as np
import matplotlib.pyplot as mp
import mpl_toolkits.mplot3d as axes3d

n = 500
x = np.random.normal(0, 1, n)
y = np.random.normal(0, 1, n)
z = np.random.normal(0, 1, n)
d = np.sqrt(x**2 + y**2 + z**2)

mp.figure('3D Scatter')
ax3d = mp.gca(projection='3d')
ax3d.set_xlabel('X', fontsize=14)
ax3d.set_ylabel('Y', fontsize=14)
ax3d.set_zlabel('Z', fontsize=14)
ax3d.scatter(x, y, z, s=60, alpha=0.6, 
	c=d, cmap='jet')
mp.show()

5 三维柱状图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#构造需要显示的值
X=np.arange(0, 5, step=1)#X轴的坐标
Y=np.arange(0, 9, step=1)#Y轴的坐标
#设置每一个(X,Y)坐标所对应的Z轴的值,在这边Z(X,Y)=X+Y
Z=np.zeros(shape=(5, 9))
for i in range(5):
    for j in range(9):
        Z[i, j]=i+j
xx, yy=np.meshgrid(X, Y)#网格化坐标
X, Y=xx.ravel(), yy.ravel()#矩阵扁平化
bottom=np.zeros_like(X)#设置柱状图的底端位值
Z=Z.ravel()#扁平化矩阵
width=height=1#每一个柱子的长和宽
#绘图设置
fig=plt.figure()
ax=fig.gca(projection='3d')#三维坐标轴
ax.bar3d(X, Y, bottom, width, height, Z, shade=True)#
#坐标轴设置
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z(value)')
plt.show()

6 三维折线图

import numpy as np
import matplotlib.pyplot as plt

xs1 = np.ones(100)
ys1 = range(1, 101)
zs1 = np.zeros(100)

xs2 = np.ones(100) * 2
ys2 = range(1, 101)
zs2 = np.zeros(100)

xs3 = np.ones(100) * 3
ys3 = range(1, 101)
zs3 = np.zeros(100)
for i in range(21, 100):
  zs3[i] = -0.22

xs4 = np.ones(100) * 4
ys4 = range(1, 101)
zs4 = np.zeros(100)


# Plot
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
ax.plot(xs1, ys1, zs1, lw=2, color=[0.8, 0.33, 0])
ax.plot(xs2, ys2, zs2, lw=2, color=[0.33, 0.8, 0])
ax.plot(xs3, ys3, zs3, lw=2, color=[0, 0.5, 0.8])
ax.plot(xs4, ys4, zs4, lw=2, color=[0.8, 0.1, 0.5])
# ax.set_xlabel("X Axis")
# ax.set_ylabel("Y Axis")
# ax.set_zlabel("Z Axis")
# ax.set_title("Addective fault simulation")
plt.show()

数据分析之matplotlib篇(代码片段)

数据分析之matplotlib篇文章目录数据分析之matplotlib篇matplotlib简介matplotlib基础绘制多次图形和不同差异图形常用统计图对比绘制散点图绘制条形图绘制基本条形图绘制多次条形图绘制直方图属性设置1、位置`loc`2、线型`lin... 查看详情

使用python--matplotlib绘制三维图形(代码片段)

1.matplotlib简介2.三维图形的绘制过程python画图需要用到matplotlib这个库。具体来说是pylab和pyplot这两个子库。这两个库可以满足基本的画图需求。如果想画三维图形的话可以直接使用matplotlib.pyplot这个库通过matplotlib模块的二维绘图... 查看详情

matplotlib绘制函数的等高线与三维图像(代码片段)

文章目录前言1.网格点2.等高线3.三维图像前言  本篇文章记录一下函数的等高线及其三维图像的可视化方法。本例绘制的函数为f(x,y)=xe−(x2+y2)f(x,y)=xe^-(x^2+y^2)f(x,y)=xe−(x2+y2)1.网格点  在绘制曲线之前,... 查看详情

[python系列-22]:python之人工智能-基本工具-6-绘制二元函数的三维曲面图(代码片段)

...ttps://blog.csdn.net/HiWangWenBing/article/details/119859493目录第1章 matplotlib原理与绘图的基本方式1.1Matplotlib构图的两种方式:第2章构建三维、曲面图形的基本步骤2 查看详情

python可视化matplotlib绘制三维可视化图形(three-dimensional)(代码片段)

Python可视化matplotlib绘制三维可视化图形(Three-Dimensional)Matplotlib最初设计时只考虑二维可视化绘图。大约在1.0版本发布的时候,在Matplotlib的二维可视化的基础之上构建了一些三维绘图实用程序,其结果是一组用于三维数据可视... 查看详情

python使用matplotlib绘制的二维骨头图。(代码片段)

查看详情

matplotlib绘制象限图——支持中文箭头自定义轴线交点(代码片段)

Matplotlib绘制象限图——支持中文、箭头、自定义轴线交点1.效果图2.原理2.1绘制象限图步骤2.1添加文字到图表3.源码参考这篇博客将介绍如何使用matplotlib绘制象限图,写这篇博客源于博友的提问。首先pyechart貌似不支持绘制象... 查看详情

matplotlib绘制散点图与条形图(代码片段)

Matplotlib绘制散点图与条形图绘制散点图#绘制散点图frommatplotlibimportpyplotaspltfrommatplotlibimportfont_manager#C:\\Windwos\\Fonts\\msyh.ttcmy_font=font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simhei.ttf")y_3 查看详情

100天精通python(可视化篇)——第82天:matplotlib绘制不同种类炫酷散点图参数说明+代码实战(二维散点图三维散点图散点图矩阵)(代码片段)

文章目录专栏导读0.前言1.参数说明2.两主特征:二维散点图1)普通散点图2)文字标签散点图3)带颜色映射的散点图4)ArcGIS散点图5)气泡图6)分类散点图7)线性拟合散点图8)分类+线性拟... 查看详情

一个python函数解决散点图绘制——matplotlib库示例(代码片段)

...该系列部分文章目录:一个Python函数解决折线图绘制——Matplotlib库示例(1)为图像插入水平线和垂直线——Matplotlib库示例(2)一个Python函数解决散点图绘制——Matplotlib库示例(3)......文章目录一、前言... 查看详情

一个python函数解决散点图绘制——matplotlib库示例(代码片段)

...该系列部分文章目录:一个Python函数解决折线图绘制——Matplotlib库示例(1)为图像插入水平线和垂直线——Matplotlib库示例(2)一个Python函数解决散点图绘制——Matplotlib库示例(3)......文章目录一、前言... 查看详情

matplotlib笔记二:常用图表(代码片段)

1、柱状图、堆叠图importnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt#柱状图、堆叠图、面积图、填图#plt.plot(kind='bar/barh'),plt.bar()#柱状图与堆叠图fig,axes=plt.subplots(4,1,figsize=[10,10])s=pd.Se 查看详情

python3——matplotlib绘图1(代码片段)

...)绘制直方图 6、使用pie()绘制饼图或圆环图使用的库importmatplotlib.pyplotaspltimportnumpyasnpplt.rcParams["font.family"]=&# 查看详情

超详细的pythonmatplotlib绘制柱状图(代码片段)

...回顾Python为数据展示提供了大量优秀的功能包,其中matplotlib模块可以方便绘制制作折线图、柱状图、散点图等高质量的数据包。关于matplotlib模块,我们前期已经对matplotlib进行基本框架、以及常用方法的学习Pythonmatplotlib... 查看详情

python数据分析之matplotlib绘制柱状图(代码片段)

一:柱状图的示例:importnumpyasnpimportmatplotlib.pyplotasplt#折线统计图#ax=[23,26,28,31,32,33]#随便创建了一个数据#ay=[3.0,3.5,4.0,3.0,3.5,4.0]#plt.plot(ax,ay,color=‘r‘,linewidth=1,label=u‘1‘)#color指定线条颜色,labeL标签内容#plt.lege 查看详情

绘制三维图(代码片段)

1importmatplotlib.pyplotasplt2#导入3D包3frommpl_toolkits.mplot3dimportAxes3D4#创建X、Y、Z坐标5X=[1,1,2,2]6Y=[3,4,4,3]7Z=[1,100,1,1]8fig=plt.figure()9#创建了一个Axes3D的子图放到figure画布里面10ax=Axes3D(fig)11ax.plot_trisurf(X,Y,Z)12plt.show()    查看详情

matplotlib绘图(代码片段)

...avefig()曲线的样式和风格(自学) importnumpyasnpimportmatplotlib.pyplotasplt#魔法指 查看详情

matplotlib绘制圆环图的两种方法!(代码片段)

作者|快快来源|快学Python人生苦短,快学Python!今天给大家介绍Python可视化之环形图的绘制。环形图,也被称为圆环图。它在功能上与饼图相同,只是中间有一个空白,并且能够同时支持多个统计数据。与标准... 查看详情