TwoPlots.py: LineInspector get much slower when samples increase

classic Classic list List threaded Threaded
1 message Options
bb
Reply | Threaded
Open this post in threaded view
|

TwoPlots.py: LineInspector get much slower when samples increase

bb
from numpy import arange, fabs, pi, sin
from scipy.special import jn

from enable.example_support import DemoFrame, demo_main

# Enthought library imports
from enable.api import Window, Component, ComponentEditor
from traits.api import HasTraits, Instance, false
from traitsui.api import Item, Group, View

# Chaco imports
from chaco.api import HPlotContainer, ArrayPlotData, Plot
from chaco.tools.api import LineInspector, ZoomTool, PanTool

#===============================================================================
# # Create the Chaco plot.
#===============================================================================
def _create_plot_component():

# Create the index
numpoints = 10000
low = 0
high = 10000
x = arange(low, high, (high-low)/numpoints)
plotdata = ArrayPlotData(x=x, y1=jn(0,x), y2=jn(1,x))

# Create the left plot
left_plot = Plot(plotdata)
left_plot.x_axis.title = "X"
left_plot.y_axis.title = "j0(x)"
renderer = left_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,inspect_mode='space'))
renderer.overlays.append(LineInspector(renderer, axis="index",
write_metadata=True,
is_listener=True,inspect_mode='space'))
left_plot.overlays.append(ZoomTool(left_plot, tool_mode="range"))
left_plot.tools.append(PanTool(left_plot))

# Create the right plot
right_plot = Plot(plotdata)
right_plot.index_range = left_plot.index_range
right_plot.orientation = "v"
right_plot.x_axis.title = "j1(x)"
right_plot.y_axis.title = "X"
renderer2 = right_plot.plot(("x","y2"), type="line", color="red", width=2.0)[0]
#renderer2.index = renderer.index
renderer2.overlays.append(LineInspector(renderer2, write_metadata=True, is_listener=True))
#renderer2.overlays.append(LineInspector(renderer2, axis="value", is_listener=True))
right_plot.overlays.append(ZoomTool(right_plot, tool_mode="range"))
right_plot.tools.append(PanTool(right_plot))

container = HPlotContainer(background="lightgray")
container.add(left_plot)
container.add(right_plot)
return container

#===============================================================================
# Attributes to use for the plot view.
size=(750,500)
title="Two Plots"        

#===============================================================================
# # Demo class that is used by the demo.py application.
#===============================================================================
class Demo(HasTraits):
plot = Instance(Component)
traits_view = View(
Group(
Item('plot', editor=ComponentEditor(size=size), 
show_label=False),
orientation = "vertical"),
resizable=True, title=title, 
width=size[0], height=size[1]
)
def _plot_default(self):
return _create_plot_component()
demo = Demo()

#===============================================================================
# Stand-alone frame to display the plot.
#===============================================================================
class PlotFrame(DemoFrame):

def _create_window(self):
# Return a window containing our plots
return Window(self, -1, component=_create_plot_component())
if __name__ == "__main__":
demo_main(PlotFrame, size=size, title=title)

I just modify there to 10000 as follows,
numpoints = 10000
low = 0
high = 10000
 then the cross-line move slower,Why?

_______________________________________________
Enthought-Dev mailing list
[hidden email]
https://mail.enthought.com/mailman/listinfo/enthought-dev