I created a method called create_plot to pass the x, y1, x_axis_name, y_axis_name values to create a Python chaco graph.
def create_plot(self, x, y1, x_axis_name, y_axis_name):
self.x = x
self.y1 = y1
self.x_axis_name = x_axis_name
self.y_axis_name = y_axis_name
plotdata = ArrayPlotData(x, y1)
plot = Plot(plotdata)
plot.x_axis.title = x_axis_name #String Example "(s)"
plot.y_axis.title = y_axis_name #String Example "(m)"
renderer = plot.plot(("x", "y1"), type="line", color="blue",
width=2.0)[0]
renderer.overlays.append(LineInspector(renderer,
axis='value',write_metadata=True, is_listener=True))
plot.overlays.append(ZoomTool(plot, tool_mode="range"))
plot.tools.append(PanTool(plot))
container = HPlotContainer(background="lightgray")
container.add(plot)
return container
def _create_plot_component(self):
self.wind_speed_graph = self.create_plot(time_list,
data_list, "(s)", "(m)")
wind_speed_graph = Instance(Component)
def _wind_speed_graph_default(self):
return _create_plot_component()
When I compile I get this error "_create_plot_component() takes exactly 1 argument (0 given)". is "create_plot" right method I created? how can I fix this error?
You need to call this method with a class instance as it is a (non-static) class method.
Solution would be something similar to this. I can't tell for certain, because a fair amount of code seems to be missing.
def _wind_speed_graph_default(self):
# note the my_instance
return my_instance._create_plot_component()