代码之家  ›  专栏  ›  技术社区  ›  pyhat

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

  •  2
  • pyhat  · 技术社区  · 9 年前

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

    散点集数据(data)

    1 回复  |  直到 9 年前
        1
  •  1
  •   David de la Iglesia    9 年前

    我修改了vispy回购中的分散示例,以满足您的要求。

    enter image description here

    代码:

    # 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()