magic-class1.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. """Use magicclass to plot\nrandom points and a histogram."""
  2. import numpy as np
  3. import vedo
  4. try:
  5. from magicclass import magicclass, field
  6. from magicclass.ext.vtk import VedoCanvas
  7. except ImportError:
  8. print("Please install magicclass with: pip install magic-class")
  9. @magicclass
  10. class ViewerUI:
  11. canvas = field(VedoCanvas)
  12. def plot_random_points(self):
  13. """Plot random data."""
  14. # create a points object and a set of axes
  15. coords = np.random.randn(1000, 3)
  16. data = np.cos(coords[:,1])
  17. points = vedo.Points(coords)
  18. points.cmap("viridis", data).add_scalarbar3d()
  19. axes = vedo.Axes(points, c="white")
  20. # create a histogram of data
  21. histo = vedo.pyplot.histogram(
  22. data, c="viridis", title=" ", xtitle="", ytitle="",
  23. )
  24. histo = histo.clone2d("bottom-right", size=0.25)
  25. ui.canvas.plotter.remove("Axes", "Points", "Histogram1D")
  26. ui.canvas.plotter.add(points, axes, histo)
  27. ui.canvas.plotter.reset_camera().render()
  28. if __name__ == "__main__":
  29. ui = ViewerUI()
  30. ui.canvas.plotter.add(__doc__)
  31. ui.show()