用 python 绘制 3D 散点图?

发布于 2024-10-02 18:35:51 字数 94 浏览 1 评论 0原文

alt text

有没有任何模块可以帮助我生成这样的东西?

alt text

Is there any module that could aid me in producing something like this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

花想c 2024-10-09 18:35:51

就像这个一样,比如说?

matplotlib 3D散点图
(来源:sourceforge.net

matplotlib 示例库 是一件很值得一看的东西。


从链接示例复制的代码。

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

def randrange(n, vmin, vmax):
    return (vmax-vmin)*np.random.rand(n) + vmin

fig = plt.figure()
ax = fig.add_subplot(111, 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()

Like this, say?

matplotlib 3D scatter plot
(source: sourceforge.net)

The matplotlib examples gallery is a wonderful thing to behold.


Code copied from the linked example.

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

def randrange(n, vmin, vmax):
    return (vmax-vmin)*np.random.rand(n) + vmin

fig = plt.figure()
ax = fig.add_subplot(111, 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()
三生殊途 2024-10-09 18:35:51

改编自 Cookbook

from numpy import *
import pylab as p
import mpl_toolkits.mplot3d.axes3d as p3

x=random.randn(100)
y=random.randn(100)
z=random.randn(100)

fig=p.figure()
ax = p3.Axes3D(fig)
ax.scatter3D(ravel(x),ravel(y),ravel(z))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
p.show()

Adapted from the Cookbook

from numpy import *
import pylab as p
import mpl_toolkits.mplot3d.axes3d as p3

x=random.randn(100)
y=random.randn(100)
z=random.randn(100)

fig=p.figure()
ax = p3.Axes3D(fig)
ax.scatter3D(ravel(x),ravel(y),ravel(z))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
p.show()
坏尐絯 2024-10-09 18:35:51

我认为 matplotlib 应该能够做类似的事情。

I think matplotlib should be able to do something like that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文