main.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import sys
  2. sys.path.append("interface/plot/")
  3. sys.path.append("wrappers/")
  4. from MatPlotLibWrapper import *
  5. from plot import *
  6. from modelverse import *
  7. import uuid
  8. # Login to Modelverse and have model rendered
  9. init()
  10. login("admin", "admin")
  11. rendered = model_render(sys.argv[1], "models/trace_mapper", "rendered/%s" % str(uuid.uuid4()))
  12. # Convert rendered to "MatPlotLib JSON"
  13. data = rendered
  14. plots = {}
  15. axis = {}
  16. datasets = {}
  17. datapoints = {}
  18. for elem in data:
  19. # Nodes
  20. if elem["type"] == "Plot":
  21. plot = Plot([])
  22. plot.legend = elem["legend"]
  23. plot.title = elem["title"]
  24. plots[elem["id"]] = plot
  25. elif elem["type"] == "Dataset":
  26. dataset = DataSet([])
  27. dataset.color = elem["color"]
  28. dataset.linestyle = elem["linestyle"]
  29. dataset.legend = elem["legend"]
  30. datasets[elem["id"]] = dataset
  31. elif elem["type"] == "XAxis":
  32. xaxis = XAxis()
  33. xaxis.name = elem["name"]
  34. xaxis.unit = elem["unit"]
  35. xaxis.lim_low = elem["lim_low"] if "lim_low" in elem else None
  36. xaxis.lim_high = elem["lim_high"] if "lim_high" in elem else None
  37. axis[elem["id"]] = xaxis
  38. elif elem["type"] == "YAxis":
  39. yaxis = YAxis()
  40. yaxis.name = elem["name"]
  41. yaxis.unit = elem["unit"]
  42. yaxis.lim_low = elem["lim_low"] if "lim_low" in elem else None
  43. yaxis.lim_high = elem["lim_high"] if "lim_high" in elem else None
  44. axis[elem["id"]] = yaxis
  45. elif elem["type"] == "Datapoint":
  46. datapoint = DataPoint(elem["x"], elem["y"])
  47. datapoints[elem["id"]] = datapoint
  48. # Edges
  49. elif elem["type"] == "x":
  50. plot = plots[elem["__source"]]
  51. xaxis = axis[elem["__target"]]
  52. plot.x = xaxis
  53. elif elem["type"] == "y":
  54. plot = plots[elem["__source"]]
  55. yaxis = axis[elem["__target"]]
  56. plot.y = yaxis
  57. elif elem["type"] == "data":
  58. plot = plots[elem["__source"]]
  59. dataset = datasets[elem["__target"]]
  60. plot.datasets.append(dataset)
  61. elif elem["type"] == "point":
  62. dataset = datasets[elem["__source"]]
  63. point = datapoints[elem["__target"]]
  64. dataset.datapoints.append(point)
  65. # Call library
  66. MatPlotLibWrapper().visualize([plot.to_json() for plot in plots.values()])