From 29da68872b26ed96bccee467f271e8be2bcb231b Mon Sep 17 00:00:00 2001 From: "James A. Bednar" Date: Mon, 28 Jan 2019 15:56:28 -0600 Subject: [PATCH] Further explained dashboard.ipynb --- examples/dashboard.ipynb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dashboard.ipynb b/examples/dashboard.ipynb index 255129b20..705c5563f 100644 --- a/examples/dashboard.ipynb +++ b/examples/dashboard.ipynb @@ -226,7 +226,9 @@ "- then create a DynamicMap that applies shading and spreading driven by the streams just created\n", "- then return the overlay as in each of the simpler versions of `viewable` above\n", "\n", - "As if that weren't confusing enough, here we had to use three different ways of making a DynamicMap: \n", + "One wrinkle here is that by default the `rasterize` operation automatically attaches the `RangeXY` stream parameters of the plot to the DynamicMap it creates, to make it responsive to changes in the visible viewport caused by zooming and panning. However, here we need to return the result of `rasterize` as the callback in a DynamicMap, which must be a static element, so we pass `rasterize(... dynamic=False)` and then explicitly attach the `RangeXY` stream to the `rasterized` DynamicMap later.\n", + "\n", + "As if all that weren't confusing enough, here we had to use three different ways of making a DynamicMap: \n", "1. Creating one directly: `hv.DynamicMap(self.callbackmethod)`: makes the result of a callback displayable on updates\n", "2. Wrapping an existing DynamicMap with an operation (`rasterize`, `shade`, `spread`, etc.): chains an operation on top of the output of something already dynamic, optionally attaching \"streams\" to control the stage-specific parameters dynamically\n", "3. Using `hv.util.Dynamic`: applies a method to the given object, controlled by supplied streams\n",