python 绘制3D散点图

本文介绍如何使用Python的matplotlib库和mpl_toolkits模块绘制三维散点图。通过生成随机数据并计算距离,利用3D坐标系展示数据分布,采用'jet'颜色映射增强视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

绘制3D散点图

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

# 1.生成数据
n = 200
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) # 距离

# 2.绘制图片
mp.figure("3D Scatter", facecolor="lightgray")
ax3d = mp.gca(projection="3d")  # 创建三维坐标

mp.title('3D Scatter', fontsize=20)
ax3d.set_xlabel('x', fontsize=14)
ax3d.set_ylabel('y', fontsize=14)
ax3d.set_zlabel('z', fontsize=14)
mp.tick_params(labelsize=10)

ax3d.scatter(x, y, z, s=20, c=d, cmap="jet", marker="o")

mp.show()

在这里插入图片描述

### 如何使用 Python Matplotlib 和 Plotly 绘制 3D 散点图 #### 使用 Matplotlib 绘制 3D 散点图 为了利用 `Matplotlib` 库创建三维散点图,可以采用如下方法: ```python import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np fig = plt.figure() ax = fig.add_subplot(projection='3d') # 制造一些测试数据. n = 100 for c, m, zl, zh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]: xs = randrange(n, 23, 32) ys = randrange(n, 0, 100) zs = randrange(n, zl, zh) ax.scatter(xs, ys, zs, c=c, marker=m) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show() ``` 这段代码展示了如何通过指定不同的参数来自定义散点的颜色、形状以及范围[^1]。 #### 使用 Plotly 绘制交互式的 3D 散点图 对于更高级别的可视化需求,比如希望得到可交互的图表,则可以选择 `Plotly` 这样的库。以下是构建一个简单的 3D 散点图的例子: ```python import plotly.express as px import pandas as pd df = pd.DataFrame([ dict(Measurement=87, Stimulant="A", Value=2), dict(Measurement=66, Stimulant="B", Value=4), dict(Measurement=95, Stimulant="C", Value=6), ]) fig = px.scatter_3d(df, x='Measurement', y='Stimulant', z='Value', color='Stimulant') fig.update_layout(scene_aspectmode='cube') fig.show() ``` 此段脚本说明了怎样借助 Pandas 数据框准备输入数据,并调用 `plotly.express` 中的相关函数快速生成带有颜色编码分类变量的 3D 散点图[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廷益--飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值