main.py 2.2 KB

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