@@ -268,16 +268,20 @@ def _render_ds_image(
268268 shaded : Any ,
269269 factor : float ,
270270 zorder : int ,
271- alpha : float ,
272271 extent : list [float ] | None ,
273272 nan_result : Any | None = None ,
274273) -> Any :
275- """Render a shaded datashader image onto matplotlib axes, with optional NaN overlay."""
274+ """Render a shaded datashader image onto matplotlib axes, with optional NaN overlay.
275+
276+ Alpha is NOT passed to ``ax.imshow`` because it is already encoded in
277+ the RGBA channels produced by ``ds.tf.shade(min_alpha=...)``. Passing
278+ it again would apply transparency twice (see #367).
279+ """
276280 if nan_result is not None :
277281 rgba_nan , trans_nan = _create_image_from_datashader_result (nan_result , factor , ax )
278- _ax_show_and_transform (rgba_nan , trans_nan , ax , zorder = zorder , alpha = alpha , extent = extent )
282+ _ax_show_and_transform (rgba_nan , trans_nan , ax , zorder = zorder , extent = extent )
279283 rgba_image , trans_data = _create_image_from_datashader_result (shaded , factor , ax )
280- return _ax_show_and_transform (rgba_image , trans_data , ax , zorder = zorder , alpha = alpha , extent = extent )
284+ return _ax_show_and_transform (rgba_image , trans_data , ax , zorder = zorder , extent = extent )
281285
282286
283287def _render_ds_outlines (
@@ -315,7 +319,7 @@ def _render_ds_outlines(
315319 how = "linear" ,
316320 )
317321 rgba , trans = _create_image_from_datashader_result (shaded , factor , ax )
318- _ax_show_and_transform (rgba , trans , ax , zorder = render_params .zorder , alpha = alpha , extent = extent )
322+ _ax_show_and_transform (rgba , trans , ax , zorder = render_params .zorder , extent = extent )
319323
320324
321325def _build_ds_colorbar (
0 commit comments