def _create_component(self): rect1 = Region("orchid", position=[50, 50]) rect2 = Region("cornflowerblue", position=[200, 50]) rect1.overlays.append(Overlay("One", component=rect1)) rect2.overlays.append(Overlay("Two", component=rect2)) container1 = OverlayPlotContainer(bounds=[400, 400], resizable="") container1.add(rect1, rect2) container1.bgcolor = (0.60, 0.98, 0.60, 0.5) # "palegreen" rect3 = Region("purple", position=[50, 50]) rect4 = Region("teal", position=[200, 50]) rect3.overlays.append(Overlay("Three", component=rect3)) rect4.overlays.append(Overlay("Four", component=rect4)) container2 = OverlayPlotContainer(bounds=[400, 400], resizable="") container2.add(rect3, rect4) container2.bgcolor = "navajowhite" container2.position = [200, 200] top_container = OverlayPlotContainer() top_container.add(container1, container2) return top_container
def _create_window(self): rect1 = Region("orchid", position=[50, 50]) rect2 = Region("cornflowerblue", position=[200, 50]) rect1.overlays.append(Overlay("One", component=rect1)) rect2.overlays.append(Overlay("Two", component=rect2)) container1 = OverlayPlotContainer(bounds=[400, 400], resizable="") container1.add(rect1, rect2) container1.bgcolor = (0.60, 0.98, 0.60, 0.5) #"palegreen" rect3 = Region("purple", position=[50, 50]) rect4 = Region("teal", position=[200, 50]) rect3.overlays.append(Overlay("Three", component=rect3)) rect4.overlays.append(Overlay("Four", component=rect4)) container2 = OverlayPlotContainer(bounds=[400, 400], resizable="") container2.add(rect3, rect4) container2.bgcolor = "navajowhite" container2.position = [200, 200] top_container = OverlayPlotContainer() top_container.add(container1, container2) return Window(self, -1, component=top_container)
def _plot_default(self): stations = self.stations lon, lat = self._proj(stations['LON'].view(numpy.ndarray), stations['LAT'].view(numpy.ndarray)) shift = self._shift lon = (lon + shift / 2.) / (shift) lat = (lat + shift / 2.) / (shift) plot = Plot(ArrayPlotData(index=lon, value=lat)) plot.plot( ("index", "value"), type="scatter", name="stations", marker="dot", outline_color='black', color=(1., 0., 0., 0.2), line_width=1., marker_size=1, ) mbtiles_fname = os.path.join('Data', 'tiles.mbtiles') if os.path.exists(mbtiles_fname): tile_cache = MBTileManager(filename=mbtiles_fname, min_level=0, max_level=7) else: tile_cache = HTTPTileManager( min_level=0, max_level=6, server='oatile1.mqcdn.com', url='/tiles/1.0.0/sat/%(zoom)d/%(row)d/%(col)d.jpg', ) # Right now, some of the tools are a little invasive, and we need the # actual ScatterPlot object to give to them scatter = plot.plots['stations'][0] map = Map(scatter, tile_cache=tile_cache, alpha=0.8, zoom_level=2) scatter.underlays.append(map) map.on_trait_change(lambda new: self._update_scatter(scatter, new), 'zoom_level') self._update_scatter(scatter, map.zoom_level) lasso_selection = LassoSelection(component=scatter, selection_datasource=scatter.index) scatter.tools.append(lasso_selection) scatter.overlays.append( LassoOverlay(component=scatter, selection_fill_color='lawngreen', selection_border_color='lightgreen', selection_alpha=0.5, selection_border_width=2.0, lasso_selection=lasso_selection)) scatter.overlays.append( ScatterInspectorOverlay(scatter, selection_metadata_name='selection', selection_marker_size=4, selection_color="lawngreen")) scatter.index.on_trait_change(self._metadata_handler, "metadata_changed") scatter.tools.append(PanTool(scatter, drag_button='right')) scatter.tools.append(ZoomTool(scatter)) plot.index_axis.title = "Longitude" plot.index_axis.tick_label_formatter = self._convert_lon plot.value_axis.title = "Latitude" plot.value_axis.tick_label_formatter = self._convert_lat plot.padding_right = plot.padding_top = 2 container = OverlayPlotContainer(use_backbuffer=True, bgcolor="sys_window") container.add(plot) container.bgcolor = "sys_window" return container
def _plot_default(self): stations = self.stations lon, lat = self._proj(stations["LON"].view(numpy.ndarray), stations["LAT"].view(numpy.ndarray)) shift = self._shift lon = (lon + shift / 2.0) / (shift) lat = (lat + shift / 2.0) / (shift) plot = Plot(ArrayPlotData(index=lon, value=lat)) plot.plot( ("index", "value"), type="scatter", name="stations", marker="dot", outline_color="black", color=(1.0, 0.0, 0.0, 0.2), line_width=1.0, marker_size=1, ) mbtiles_fname = os.path.join("Data", "tiles.mbtiles") if os.path.exists(mbtiles_fname): tile_cache = MBTileManager(filename=mbtiles_fname, min_level=0, max_level=7) else: tile_cache = HTTPTileManager( min_level=0, max_level=6, server="oatile1.mqcdn.com", url="/tiles/1.0.0/sat/%(zoom)d/%(row)d/%(col)d.jpg", ) # Right now, some of the tools are a little invasive, and we need the # actual ScatterPlot object to give to them scatter = plot.plots["stations"][0] map = Map(scatter, tile_cache=tile_cache, alpha=0.8, zoom_level=2) scatter.underlays.append(map) map.on_trait_change(lambda new: self._update_scatter(scatter, new), "zoom_level") self._update_scatter(scatter, map.zoom_level) lasso_selection = LassoSelection(component=scatter, selection_datasource=scatter.index) scatter.tools.append(lasso_selection) scatter.overlays.append( LassoOverlay( component=scatter, selection_fill_color="lawngreen", selection_border_color="lightgreen", selection_alpha=0.5, selection_border_width=2.0, lasso_selection=lasso_selection, ) ) scatter.overlays.append( ScatterInspectorOverlay( scatter, selection_metadata_name="selection", selection_marker_size=4, selection_color="lawngreen" ) ) scatter.index.on_trait_change(self._metadata_handler, "metadata_changed") scatter.tools.append(PanTool(scatter, drag_button="right")) scatter.tools.append(ZoomTool(scatter)) plot.index_axis.title = "Longitude" plot.index_axis.tick_label_formatter = self._convert_lon plot.value_axis.title = "Latitude" plot.value_axis.tick_label_formatter = self._convert_lat plot.padding_right = plot.padding_top = 2 container = OverlayPlotContainer(use_backbuffer=True, bgcolor="sys_window") container.add(plot) container.bgcolor = "sys_window" return container