Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python vispy:同一绘图上的两个数据集,带有颜色_Python_Point Clouds_Vispy - Fatal编程技术网

Python vispy:同一绘图上的两个数据集,带有颜色

Python vispy:同一绘图上的两个数据集,带有颜色,python,point-clouds,vispy,Python,Point Clouds,Vispy,我有两个3d numpy阵列,我正试图通过vispy 3d散射以两种不同的颜色绘制它们 我已经熟悉如何通过vispy上的散射设置数据: 分散。设置_数据(数据) 其中数据以numpy数组的形式存在。然而,我需要用两种不同的颜色绘制两个不同的数据集,我觉得这里缺少了一些非常明显的东西。我可以将两个点集视为一个数据集,但如何为点组获得两种不同的颜色?我修改了vispy repo中的散射示例,以满足您的要求 结果: 代码: # pylint: disable=no-member """ scatte

我有两个3d numpy阵列,我正试图通过vispy 3d散射以两种不同的颜色绘制它们

我已经熟悉如何通过vispy上的散射设置数据:

分散。设置_数据(数据)


其中数据以numpy数组的形式存在。然而,我需要用两种不同的颜色绘制两个不同的数据集,我觉得这里缺少了一些非常明显的东西。我可以将两个点集视为一个数据集,但如何为点组获得两种不同的颜色?

我修改了vispy repo中的散射示例,以满足您的要求

结果:

代码:
# pylint: disable=no-member
""" scatter using MarkersVisual """

import numpy as np
import sys

from vispy import app, visuals, scene


# build your visuals, that's all
Scatter3D = scene.visuals.create_visual_node(visuals.MarkersVisual)

# The real-things : plot using scene
# build canvas
canvas = scene.SceneCanvas(keys='interactive', show=True)

# Add a ViewBox to let the user zoom/rotate
view = canvas.central_widget.add_view()
view.camera = 'turntable'
view.camera.fov = 45
view.camera.distance = 500

# data
n = 500
# generate 2 point clouds
cloud1 = np.random.rand(n, 3) * 100
cloud2 = np.random.rand(n, 3) * 100
# cloud1 -> orange
# cloud2 -> white
color1 = np.array([[1, 0.4, 0]] * n)
color2 = np.ones((n, 3))

# stack point clouds and colors
pos = np.vstack((cloud1, cloud2))
colors = np.vstack((color1, color2))


# plot ! note the parent parameter
p1 = Scatter3D(parent=view.scene)
p1.set_gl_state('translucent', blend=True, depth_test=True)
p1.set_data(pos, face_color=colors, symbol='o', size=10,
            edge_width=0.5, edge_color='blue')

# run
if __name__ == '__main__':
    if sys.flags.interactive != 1:
        app.run()