From 8e8805a9c8617cd6ae8e4a06cb5033cd8fc0f406 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sun, 2 Dec 2018 21:40:39 +0000 Subject: [PATCH] Fixed bare axis option in bokeh (#3246) --- holoviews/plotting/bokeh/element.py | 4 +- .../tests/plotting/bokeh/testelementplot.py | 73 +++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/holoviews/plotting/bokeh/element.py b/holoviews/plotting/bokeh/element.py index 5d27853353..b60c3378c2 100644 --- a/holoviews/plotting/bokeh/element.py +++ b/holoviews/plotting/bokeh/element.py @@ -405,8 +405,8 @@ def _axis_properties(self, axis, key, plot, dimension=None, # need to copy dictionary by calling dict() on it axis_props = dict(theme_attr_json(self.renderer.theme, 'Axis')) - if ((axis == 'x' and self.xaxis in ['bottom-bare', 'top-bare']) or - (axis == 'y' and self.yaxis in ['left-bare', 'right-bare'])): + if ((axis == 'x' and self.xaxis in ['bottom-bare', 'top-bare', 'bare']) or + (axis == 'y' and self.yaxis in ['left-bare', 'right-bare', 'bare'])): axis_props['axis_label_text_font_size'] = value('0pt') axis_props['major_label_text_font_size'] = value('0pt') axis_props['major_tick_line_color'] = None diff --git a/holoviews/tests/plotting/bokeh/testelementplot.py b/holoviews/tests/plotting/bokeh/testelementplot.py index 25a711be11..62112e4bad 100644 --- a/holoviews/tests/plotting/bokeh/testelementplot.py +++ b/holoviews/tests/plotting/bokeh/testelementplot.py @@ -3,6 +3,7 @@ import numpy as np +from bokeh.core.properties import value from holoviews.core import Dimension, DynamicMap, NdOverlay from holoviews.element import Curve, Image, Scatter, Labels from holoviews.streams import Stream @@ -25,6 +26,78 @@ def test_element_show_frame_disabled(self): plot = bokeh_renderer.get_plot(curve).state self.assertEqual(plot.outline_line_alpha, 0) + def test_element_xaxis_top(self): + curve = Curve(range(10)).options(xaxis='top') + plot = bokeh_renderer.get_plot(curve) + xaxis = plot.handles['xaxis'] + self.assertTrue(xaxis in plot.state.above) + + def test_element_xaxis_bare(self): + curve = Curve(range(10)).options(xaxis='bare') + plot = bokeh_renderer.get_plot(curve) + xaxis = plot.handles['xaxis'] + self.assertEqual(xaxis.axis_label_text_font_size, value('0pt')) + self.assertEqual(xaxis.major_label_text_font_size, value('0pt')) + self.assertEqual(xaxis.minor_tick_line_color, None) + self.assertEqual(xaxis.major_tick_line_color, None) + self.assertTrue(xaxis in plot.state.below) + + def test_element_xaxis_bottom_bare(self): + curve = Curve(range(10)).options(xaxis='bottom-bare') + plot = bokeh_renderer.get_plot(curve) + xaxis = plot.handles['xaxis'] + self.assertEqual(xaxis.axis_label_text_font_size, value('0pt')) + self.assertEqual(xaxis.major_label_text_font_size, value('0pt')) + self.assertEqual(xaxis.minor_tick_line_color, None) + self.assertEqual(xaxis.major_tick_line_color, None) + self.assertTrue(xaxis in plot.state.below) + + def test_element_xaxis_top_bare(self): + curve = Curve(range(10)).options(xaxis='top-bare') + plot = bokeh_renderer.get_plot(curve) + xaxis = plot.handles['xaxis'] + self.assertEqual(xaxis.axis_label_text_font_size, value('0pt')) + self.assertEqual(xaxis.major_label_text_font_size, value('0pt')) + self.assertEqual(xaxis.minor_tick_line_color, None) + self.assertEqual(xaxis.major_tick_line_color, None) + self.assertTrue(xaxis in plot.state.above) + + def test_element_yaxis_right(self): + curve = Curve(range(10)).options(yaxis='right') + plot = bokeh_renderer.get_plot(curve) + yaxis = plot.handles['yaxis'] + self.assertTrue(yaxis in plot.state.right) + + def test_element_yaxis_bare(self): + curve = Curve(range(10)).options(yaxis='bare') + plot = bokeh_renderer.get_plot(curve) + yaxis = plot.handles['yaxis'] + self.assertEqual(yaxis.axis_label_text_font_size, value('0pt')) + self.assertEqual(yaxis.major_label_text_font_size, value('0pt')) + self.assertEqual(yaxis.minor_tick_line_color, None) + self.assertEqual(yaxis.major_tick_line_color, None) + self.assertTrue(yaxis in plot.state.left) + + def test_element_yaxis_left_bare(self): + curve = Curve(range(10)).options(yaxis='left-bare') + plot = bokeh_renderer.get_plot(curve) + yaxis = plot.handles['yaxis'] + self.assertEqual(yaxis.axis_label_text_font_size, value('0pt')) + self.assertEqual(yaxis.major_label_text_font_size, value('0pt')) + self.assertEqual(yaxis.minor_tick_line_color, None) + self.assertEqual(yaxis.major_tick_line_color, None) + self.assertTrue(yaxis in plot.state.left) + + def test_element_yaxis_right_bare(self): + curve = Curve(range(10)).options(yaxis='right-bare') + plot = bokeh_renderer.get_plot(curve) + yaxis = plot.handles['yaxis'] + self.assertEqual(yaxis.axis_label_text_font_size, value('0pt')) + self.assertEqual(yaxis.major_label_text_font_size, value('0pt')) + self.assertEqual(yaxis.minor_tick_line_color, None) + self.assertEqual(yaxis.major_tick_line_color, None) + self.assertTrue(yaxis in plot.state.right) + def test_element_xformatter_string(self): curve = Curve(range(10)).options(xformatter='%d') plot = bokeh_renderer.get_plot(curve)