Skip to content

Commit 4a9a4da

Browse files
authored
Merge pull request #149 from samcunliffe/142-titles-not-respecting-theme
Axis labels should respect the theme (#142) and fix #96 whilst I'm at it.
2 parents ea2f7bc + 21b5823 commit 4a9a4da

13 files changed

+47
-0
lines changed

Diff for: src/napari_matplotlib/base.py

+1
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ def _draw(self) -> None:
245245
isinstance(layer, self.input_layer_types) for layer in self.layers
246246
):
247247
self.draw()
248+
self.apply_napari_colorscheme(self.figure.gca())
248249
self.canvas.draw()
249250

250251
def clear(self) -> None:
3.83 KB
Loading
3.39 KB
Loading
1.83 KB
Loading
1.86 KB
Loading
Loading
Loading
Loading

Diff for: src/napari_matplotlib/tests/scatter/test_scatter.py

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
@pytest.mark.mpl_image_compare
99
def test_scatter_2D(make_napari_viewer, astronaut_data):
1010
viewer = make_napari_viewer()
11+
viewer.theme = "light"
1112
widget = ScatterWidget(viewer)
1213
fig = widget.figure
1314

@@ -28,6 +29,7 @@ def test_scatter_2D(make_napari_viewer, astronaut_data):
2829
@pytest.mark.mpl_image_compare
2930
def test_scatter_3D(make_napari_viewer, brain_data):
3031
viewer = make_napari_viewer()
32+
viewer.theme = "light"
3133
widget = ScatterWidget(viewer)
3234
fig = widget.figure
3335

Diff for: src/napari_matplotlib/tests/scatter/test_scatter_features.py

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
@pytest.mark.mpl_image_compare
1212
def test_features_scatter_widget_2D(make_napari_viewer):
1313
viewer = make_napari_viewer()
14+
viewer.theme = "light"
1415
widget = FeaturesScatterWidget(viewer)
1516

1617
# make the points data

Diff for: src/napari_matplotlib/tests/test_histogram.py

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
@pytest.mark.mpl_image_compare
99
def test_histogram_2D(make_napari_viewer, astronaut_data):
1010
viewer = make_napari_viewer()
11+
viewer.theme = "light"
1112
viewer.add_image(astronaut_data[0], **astronaut_data[1])
1213
fig = HistogramWidget(viewer).figure
1314
# Need to return a copy, as original figure is too eagerley garbage
@@ -18,6 +19,7 @@ def test_histogram_2D(make_napari_viewer, astronaut_data):
1819
@pytest.mark.mpl_image_compare
1920
def test_histogram_3D(make_napari_viewer, brain_data):
2021
viewer = make_napari_viewer()
22+
viewer.theme = "light"
2123
viewer.add_image(brain_data[0], **brain_data[1])
2224
axis = viewer.dims.last_used
2325
slice_no = brain_data[0].shape[0] - 1

Diff for: src/napari_matplotlib/tests/test_slice.py

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
@pytest.mark.mpl_image_compare
99
def test_slice_3D(make_napari_viewer, brain_data):
1010
viewer = make_napari_viewer()
11+
viewer.theme = "light"
1112
viewer.add_image(brain_data[0], **brain_data[1])
1213
axis = viewer.dims.last_used
1314
slice_no = brain_data[0].shape[0] - 1
@@ -21,6 +22,7 @@ def test_slice_3D(make_napari_viewer, brain_data):
2122
@pytest.mark.mpl_image_compare
2223
def test_slice_2D(make_napari_viewer, astronaut_data):
2324
viewer = make_napari_viewer()
25+
viewer.theme = "light"
2426
viewer.add_image(astronaut_data[0], **astronaut_data[1])
2527
fig = SliceWidget(viewer).figure
2628
# Need to return a copy, as original figure is too eagerley garbage

Diff for: src/napari_matplotlib/tests/test_theme.py

+39
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import napari
2+
import numpy as np
23
import pytest
34

5+
from napari_matplotlib import ScatterWidget
46
from napari_matplotlib.base import NapariMPLWidget
57

68

@@ -49,3 +51,40 @@ def test_theme_background_check(make_napari_viewer):
4951
_mock_up_theme()
5052
viewer.theme = "blue"
5153
assert widget._theme_has_light_bg() is True
54+
55+
56+
@pytest.mark.parametrize(
57+
"theme_name, expected_text_colour",
58+
[
59+
("dark", "#f0f1f2"), # #f0f1f2 is a light grey (almost white)
60+
("light", "#3b3a39"), # #3b3a39 is a brownish dark grey (almost black)
61+
],
62+
)
63+
def test_titles_respect_theme(
64+
make_napari_viewer, theme_name, expected_text_colour
65+
):
66+
"""
67+
Test that the axis labels and titles are the correct color for the napari theme.
68+
"""
69+
viewer = make_napari_viewer()
70+
widget = ScatterWidget(viewer)
71+
viewer.theme = theme_name
72+
73+
# make a scatter plot of two random layers
74+
viewer.add_image(np.random.random((10, 10)), name="first test image")
75+
viewer.add_image(np.random.random((10, 10)), name="second test image")
76+
viewer.layers.selection.clear()
77+
viewer.layers.selection.add(viewer.layers[0])
78+
viewer.layers.selection.add(viewer.layers[1])
79+
80+
ax = widget.figure.gca()
81+
82+
# sanity test to make sure we've got the correct image names
83+
assert ax.xaxis.label.get_text() == "first test image"
84+
assert ax.yaxis.label.get_text() == "second test image"
85+
86+
# print(dir(ax.yaxis.label))
87+
# TODO: put checks of the axis tick labels here
88+
89+
assert ax.xaxis.label.get_color() == expected_text_colour
90+
assert ax.yaxis.label.get_color() == expected_text_colour

0 commit comments

Comments
 (0)