我在python中使用matplotlib中的散点3d绘图来绘制以下数据,

      x              y            z        b2
3.28912855713 4.64604863545 3.95526335139 1.0
3.31252670518 4.65385917898 3.96834118896 1.0

当情节是2d时,

fig = plt.figure()
ax = fig.add_subplot(111)
line =ax.scatter(x,y,c=b2,s=500,marker='*',edgecolors='none')
cb = plt.colorbar(line)

它生成以下图像,这是完全正确的。 在此输入图像描述

现在,我想绘制3d点,代码为:

fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
line = ax.scatter(x,y,z,c=b2,s=1500,marker='*',edgecolors='none',depthshade=0)
cb = plt.colorbar(line)

我得到了以下情节,这是不对的,因为颜色应该像之前的情况一样是绿色的(b2不会改变)。 在此输入图像描述

我错过了什么吗?

#1楼 票数:3 已采纳

可能不是。 我不知道您使用的是什么版本的Matplotlib但是在某些时候这个问题存在一个错误,显然仍然会对我今天使用的版本产生影响,即1.5.1(请查看此问题以获取更多信息)。

使@Yann解决方案适应您的问题应解决该问题。 我在计算机上测试了它,结果如下:

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

x = [3.28912855713, 3.31252670518]
y = [4.64604863545, 4.65385917898]
z = [3.95526335139, 3.96834118896]
b2 = [1, 1]

fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
line = ax.scatter(x, y ,z , c=b2, s=1500, marker='*', edgecolors='none', depthshade=0)
cb = plt.colorbar(line)

def forceUpdate(event):
    global line
    line.changed()

fig.canvas.mpl_connect('draw_event', forceUpdate)

plt.show()

入口处和旋转后的图的图像是:

3D matplotlib散点图与颜色

旋转后带有颜色的3D matplotlib散点图

  ask by HP AS translate from so

未解决问题?本站智能推荐:

2回复

Matplotlib 3D散点图与颜色渐变

如何为点创建带有颜色渐变的3D绘图? 请参阅下面的示例,该示例适用于2D散点图。 编辑(感谢Chris):我期望从3D绘图中看到的是从2D红色到绿色的点的颜色渐变,如2D散点图中所示。 我在3D散点图中看到的只是红点。 解决方案:由于某些原因(与我在别处复制的渐变示例相关),我将
1回复

在Matplotlib 3D散点图中丢失的颜色

对于一个项目,我正在制作一些3D散点图,其下面有三个相应的投影。 我使用不同的颜色来表示第四个参数。 首先,我使用某种颜色绘制数据,然后使用不同的颜色绘制其他数据,以便最终订单可以让我看到我想要的所有内容: 一开始这个工作正常,但是当我尝试使用略有不同的数据做同样的事情时,颜色会搞砸
1回复

更改颜色范围3d图Matplotlib

我正在尝试绘制3d图,但是颜色范围太小,以至于它仅覆盖z轴可以具有的一小部分值。 我该如何解决? 我附上我得到的代码和图像:
2回复

Matplotlib 3D散射动画

我正在绘制星团中的位置,我的数据位于具有x,y,z位置的数据帧以及时间索引中。 我能够制作一个三维散点图,并试图产生一个旋转图 - 我有点成功,但在动画API中苦苦挣扎。 如果我的“update_graph”函数只返回一个新的ax.scatter(),那么旧的一个会保留绘制,除非我重
3回复

指定散点图中每个点的颜色(matplotlib)

我有一个使用 matplotlib 创建的 3D 图,我有一个对应于每个点的 rbg 值列表。 我有 X、Y 和 Z 数据,然后我有以下形式的“颜色列表”: 匹配每个 (x, y, z) 点。 现在,我有 合并这些 rgb 元组以便为每个点分配特定颜色的适当方法是什么?
2回复

Matplotlib:在3d情节中显示

在下面的图中,取自matplotlib的图库,contourf用于在3d图形下方创建第二个图。 我的问题是,是否有可能使用imshow做同样的事情? 我希望2D图中的颜色更平滑。 制作2d图似乎是可能的,因为contourf接受zdir参数,而我看了,而imshow没有。 这表明这是
1回复

在3D中散点图> 100万点

我正在使用下面的代码绘制3D数据。 当点数N> 10,000时,在显示图形窗口和与绘图交互时,性能都会降低。 是否有其他模块可以处理性能更好的大量数据点? 我可以对某些任务的数据进行二次采样,但是我仍然需要此功能。
4回复

如何在 Python 中制作 3D 散点图?

我目前有一个 nx3 矩阵数组。 我想将三列绘制为三个轴。 我怎样才能做到这一点? 我用谷歌搜索过,人们建议使用Matlab ,但我真的很难理解它。 我还需要它是一个散点图。 有人可以教我吗?