返回顶部
首页 > 资讯 > 后端开发 > Python >python 绘制3D图案例分享
  • 677
分享到

python 绘制3D图案例分享

2024-04-02 19:04:59 677人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.散点图代码输入的数据格式2.三维表面 surface代码输入的数据格式scatter + surface图形展示3. 三维瀑布图waterfall代码输入的数据格式4. 3D

1.散点图

代码

# This import reGISters the 3D projection, but is otherwise unused.
from mpl_toolkits.mplot3d import Axes3D  # noqa: F401 unused import

import matplotlib.pyplot as plt
import numpy as np

# Fixing random state for reproducibility
np.random.seed(19680801)
def randrange(n, vmin, vmax):
    '''
    Helper function to make an array of random numbers having shape (n, )
    with each number distributed UnifORM(vmin, vmax).
    '''
    return (vmax - vmin)*np.random.rand(n) + vmin

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 100
# For each set of style and range settings, plot n random points in the box
# defined by x in [23, 32], y in [0, 100], z in [zlow, zhigh].
for m, zlow, zhigh in [('o', -50, -25), ('^', -30, -5)]:
    xs = randrange(n, 23, 32)
    ys = randrange(n, 0, 100)
    zs = randrange(n, zlow, zhigh)
    ax.scatter(xs, ys, zs, marker=m)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()

输出:

输入的数据格式

这个输入的三个维度要求是三列长度一致的数据,可以理解为3个length相等的list。
用上面的scatter或者下面这段直接plot也可以。

fig = plt.figure()
ax = fig.GCa(projection='3d')
ax.plot(h, z, t, '.', alpha=0.5)
plt.show()

输出:

2.三维表面 surface

代码

x = [12.7, 12.8, 12.9]
y = [1, 2, 3, 4]
temp = pd.DataFrame([[7,7,9,9],[2,3,4,5],[1,6,8,7]]).T
X,Y = np.meshgrid(x,y)  # 形成网格化的数据
temp = np.array(temp)
fig = plt.figure(figsize=(16, 16))
ax = fig.gca(projection='3d')
ax.plot_surface(Y,X,temp,rcount=1, cmap=cm.plasma, linewidth=1, antialiased=False,alpha=0.5) #cm.plasma
ax.set_xlabel('zone', color='b', fontsize=20)
ax.set_ylabel('h2o', color='g', fontsize=20)
ax.set_zlabel('Temperature', color='r', fontsize=20)

output:

输入的数据格式

这里x和y原本都是一维list,通过np.meshgrid可以将其形成4X3的二维数据,如下图所示:

而第三维,得是4X3的2维的数据,才能进行画图

scatter + surface图形展示

3. 三维瀑布图waterfall

代码

from matplotlib.collections import PolyCollection
import matplotlib.pyplot as plt
from matplotlib import colors as mcolors
import numpy as np

axes=plt.axes(projection="3d")

def colors(arg):
    return mcolors.to_rgba(arg, alpha=0.6)
verts = []
z1 = [1, 2, 3, 4]
x1 = np.arange(0, 10, 0.4)
for z in z1:
    y1 = np.random.rand(len(x1))
    y1[0], y1[-1] = 0, 0
    verts.append(list(zip(x1, y1)))
# print(verts)
poly = PolyCollection(verts, facecolors=[colors('r'), colors('g'), colors('b'),
                                         colors('y')])
poly.set_alpha(0.7)
axes.add_collection3d(poly, zs=z1, zdir='y')
axes.set_xlabel('X')
axes.set_xlim3d(0, 10)
axes.set_ylabel('Y')
axes.set_ylim3d(-1, 4)
axes.set_zlabel('Z')
axes.set_zlim3d(0, 1)
axes.set_title("3D Waterfall plot")
plt.show()

输出:

输入的数据格式

这个的输入我还没有完全搞懂,导致我自己暂时不能复现到其他数据,等以后懂了再回来补充。

4. 3d wireframe

code

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(
    2, 1, figsize=(8, 12), subplot_kw={'projection': '3d'})

# Get the test data
X, Y, Z = axes3d.get_test_data(0.05)

# Give the first plot only wireframes of the type y = c
ax1.plot_wireframe(X, Y, Z, rstride=10, cstride=0)
ax1.set_title("Column (x) stride set to 0")

# Give the second plot only wireframes of the type x = c
ax2.plot_wireframe(X, Y, Z, rstride=0, cstride=10)
ax2.set_title("Row (y) stride set to 0")
plt.tight_layout()
plt.show()

output:

输入的数据格式

与plot_surface的输入格式一样,X,Y原本为一维list,通过np.meshgrid形成网格化数据。Z为二维数据。其中注意调节rstride、cstride这两个值实现行列间隔的调整。

自己试了下:

到此这篇关于python 绘制3D图案例分享的文章就介绍到这了,更多相关Python 绘制3D图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python 绘制3D图案例分享

本文链接: https://lsjlt.com/news/119721.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python 绘制3D图案例分享
    目录1.散点图代码输入的数据格式2.三维表面 surface代码输入的数据格式scatter + surface图形展示3. 三维瀑布图waterfall代码输入的数据格式4. 3d...
    99+
    2024-04-02
  • python 绘制3D图
    python 绘制3D图 1.散点图代码输入的数据格式 2.三维表面 surface代码输入的数据格式scatter + surface图形展示 3. 三维瀑布图waterfall代码...
    99+
    2023-09-25
    python 机器学习 matplotlib
  • Python tkinter库图形绘制例子分享
    目录一、椭圆绘制二、矩形绘制三、多边形绘制一、椭圆绘制 实例代码: import tkinter as tk                    # 导入tkinter库,并重命名...
    99+
    2024-04-02
  • 基于Python绘制3D立体爱心图案的示例详解
    目录原理点画法(实心)代码运行效果点画法(空心)代码运行效果折线画法 (线团)代码运行效果等高线画法(线框)代码运行效果原理 1.使用python中的mtplotlib库。 2.立体...
    99+
    2022-11-16
    Python绘制3D立体爱心 Python绘制3D爱心 Python 3D 爱心
  • Python+Matplotlib绘制3D图像的示例详解
    目录1. 绘制3D柱状图2. 绘制3D曲面图示例1示例23.绘制3D散点图4. 绘制3D曲线图1. 绘制3D柱状图 绘制3D柱状图使用的是axes3d.bar()方法。 可能跟我们中...
    99+
    2024-04-02
  • Python tkinter库绘图实例分享
    目录一、小房子绘制二、彩色气泡动画绘制三、画布创建一、小房子绘制 实例代码: # coding=utf-8 import tkinter as tk      # 导入tkinter...
    99+
    2024-04-02
  • 【100天精通Python】Day65:Python可视化_Matplotlib3D绘图mplot3d,绘制3D散点图、3D线图和3D条形图,示例+代码
    1  mpl_toolkits.mplot3d  功能介绍   mpl_toolkits.mplot3d 是 Matplotlib 库中的一个子模块,用于绘制和可视化三维图形,包括三维散点图、曲面图、线图等。它提供了丰富的功能来创建和定制三...
    99+
    2023-10-18
    3d 信息可视化 python matplotlib
  • R绘制3D饼图
    二维饼图代码如下:#绘制2维饼图 x=read.delim("C:/Users/a/Desktop/sample.txt",header=FALSE) #读入文本数据 names(x)=c("word","count") #加表头 x=tr...
    99+
    2023-01-31
    饼图
  • 利用Python实现绘制3D爱心的代码分享
    目录环境介绍第一步,绘制一个三维的爱心亿点点细节加入时间序列加入心脏的跳动一个好的展示完整代码环境介绍 python3.8 numpy matplotlib 第一步,绘制一个三维的爱...
    99+
    2022-11-16
    Python绘制3D爱心 Python 3D爱心 Python 爱心
  • Python画图练习案例分享
    目录1.多边形的绘制案例2.太阳花案例3.颜色五角星案例4.艺术图片5.黑六边形6.绘制时钟7.绘制分形树8.彩虹线绘制案例1.多边形的绘制案例 # 多边形的绘制案例 import ...
    99+
    2024-04-02
  • 利用Python绘制酷炫的3D地图
    目录1.重庆市3D地图2.中国3D地图一3.中国3D地图二4.中国3D地图三5.地球展示之前我们介绍了很多Python地图可视化的内容,本次主要介绍如何Python绘制3D地图,还是...
    99+
    2024-04-02
  • WPF实现绘制3D图形的示例代码
    目录关键概念视口相机光源材质3D对象命中测试(鼠标交互)3D对象中2D控件渲染外部导入3D模型WPF的3D功能可以在不编写任何c#代码的情况下进行绘制,只需要使用xaml即可完成3D...
    99+
    2023-03-02
    WPF绘制3D图形 WPF 3D图形 WPF 3D
  • Python绘制3D立体花朵示例详解
    目录动态展示导读源码和详解荷花玫瑰花桃花月季动态展示 这是一个动态图哦 导读 兄弟们可以收藏一下哦!情人节可以送出去,肥学找了几朵python写的花给封装好送给大家。不是多炫酷但是...
    99+
    2024-04-02
  • Python制作七夕表白案例分享
    目录一、记录一起走过的那些日子二、创意代码表白2.1、效果演示2.2、制作步过程2.2.1、清屏函数2.2.2、重定位海龟的位置2.2.3、显示文字2.2.4、画出人物2.2.5、画...
    99+
    2024-04-02
  • Android开发 OpenGL ES绘制3D 图形实例详解
    OpenGL ES是 OpenGL三维图形API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。 Ophone目前支持OpenGL ES 1.0 ,OpenGL ES ...
    99+
    2022-06-06
    android开发 opengl 3d Android
  • python 3D绘制立体几何
    直接复制就能用,写的简单,请勿吐槽 import numpy as np import mpl_toolkits.mplot3d import matplotlib.pyplot as plt x=[0,3,0,3,1.5] y...
    99+
    2023-01-31
    立体几何 python
  • Python+Seaborn绘制分布图的示例详解
    目录前言示例 1示例 2示例 3示例 4示例 5例子 6例子 7示例 8示例 9示例10前言 在本文中,我们将介绍10个示例,以掌握如何使用用于Python的Seaborn库创建图表...
    99+
    2024-04-02
  • Python绘制折线图可视化神器pyecharts案例
    目录前言折线图模板系列自定义标签数据折线图一天用电量折线图(特定场景)断点折线图(根据场景进行配置)双折线图显示最低最高数据标签(不显示其他数据标签)双折线图显示平均刻度数据标签(数...
    99+
    2024-04-02
  • WPF如何实现绘制3D图形
    今天小编给大家分享一下WPF如何实现绘制3D图形的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。关键概念视口视口指的是图像要展...
    99+
    2023-07-05
  • Python基础案例分享
    本篇内容介绍了“Python基础案例分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、超市买薯片# 用户输入薯片的单价danj...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作