Skip to content

Commit 064252b

Browse files
committed
added basic coloring to histogram
1 parent 53aa5ec commit 064252b

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/napari_matplotlib/histogram.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,12 +162,37 @@ def on_update_layers(self) -> None:
162162

163163
def draw(self) -> None:
164164
"""Clear the axes and histogram the currently selected layer/slice."""
165+
166+
# get the colormap from the layer depending on its type
167+
if isinstance(self.layers[0], napari.layers.Points):
168+
colormap = self.layers[0].face_colormap
169+
self.viewer.layers[0].face_color = self.x_axis_key
170+
elif isinstance(self.layers[0], napari.layers.Vectors):
171+
colormap = self.layers[0].edge_colormap
172+
self.viewer.layers[0].edge_color = self.x_axis_key
173+
elif isinstance(self.layers[0], napari.layers.Labels):
174+
colormap = self.layers[0].colormap
175+
self.viewer.layers[0].color = self.x_axis_key
176+
else:
177+
colormap = None
178+
self.viewer.layers[self.layers[0].name].refresh_colors(True)
179+
180+
# Draw the histogram
165181
data, x_axis_name = self._get_data()
166182

167183
if data is None:
168184
return
169185

170-
self.axes.hist(data, bins=50, edgecolor="white", linewidth=0.3)
186+
_, bins, patches = self.axes.hist(data, bins=50, edgecolor="white", linewidth=0.3)
187+
188+
# recolor the histogram plot
189+
if colormap is not None:
190+
self.bins_norm = (bins - bins.min())/(bins.max() - bins.min())
191+
colors = colormap.map(self.bins_norm)
192+
193+
# Set histogram style:
194+
for idx, patch in enumerate(patches):
195+
patch.set_facecolor(colors[idx])
171196

172197
# set ax labels
173198
self.axes.set_xlabel(x_axis_name)

0 commit comments

Comments
 (0)