prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  allow users to specify explicit tick labels
  `FixedTicker` allows users to specify fixed tick locations, but also need to allow users to specify explicit tick labels
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py`
  Content:
  ```
  1 from bokeh.plotting import figure, output_file, show
  2 from bokeh.models import FixedTicker
  3 
  4 output_file("axes.html")
  5 
  6 p = figure(plot_width=400, plot_height=400)
  7 p.circle([1,2,3,4,5], [2,5,8,2,7], size=10)
  8 
  9 p.xaxis[0].ticker=FixedTicker(ticks=[2, 3.5, 4])
  10 
  11 show(p)
  12
  ```
  
  Path: `bokeh/models/axes.py`
  Content:
  ```
  1 ''' Guide renderers for various kinds of axes that can be added to
  2 Bokeh plots
  3 
  4 '''
  5 from __future__ import absolute_import
  6 
  7 from ..core.has_props import abstract
  8 from ..core.properties import Auto, Datetime, Either, Enum, Float, Include, Instance, Int, Override, String, Tuple
  9 from ..core.property_mixins import LineProps, TextProps
  10 
  11 from .formatters import BasicTickFormatter, CategoricalTickFormatter, DatetimeTickFormatter, LogTickFormatter, TickFormatter
  12 from .renderers import GuideRenderer
  13 from .tickers import Ticker, BasicTicker, LogTicker, CategoricalTicker, DatetimeTicker
  14 
  15 @abstract
  16 class Axis(GuideRenderer):
  17     ''' A base class that defines common properties for all axis types.
  18 
  19     '''
  20 
  21     bounds = Either(Auto, Tuple(Float, Float), Tuple(Datetime, Datetime), help="""
  22     Bounds for the rendered axis. If unset, the axis will span the
  23     entire plot in the given dimension.
  24     """)
  25 
  26     x_range_name = String('default', help="""
  27     A particular (named) x-range to use for computing screen
  28     locations when rendering an axis on the plot. If unset, use the
  29     default x-range.
  30     """)
  31 
  32     y_range_name = String('default', help="""
  33     A particular (named) y-range to use for computing screen
  34     locations when rendering an axis on the plot. If unset, use the
  35     default y-range.
  36     """)
  37 
  38     ticker = Instance(Ticker, help="""
  39     A Ticker to use for computing locations of axis components.
  40     """)
  41 
  42     formatter = Instance(TickFormatter, help="""
  43     A TickFormatter to use for formatting the visual appearance
  44     of ticks.
  45     """)
  46 
  47     axis_label = String(default='', help="""
  48     A text label for the axis, displayed parallel to the axis rule.
  49 
  50     .. note::
  51         LaTeX notation is not currently supported; please see
  52         :bokeh-issue:`647` to track progress or contribute.
  53 
  54     """)
  55 
  56     axis_label_standoff = Int(default=5, help="""
  57     The distance in pixels that the axis labels should be offset
  58     from the tick labels.
  59     """)
  60 
  61     axis_label_props = Include(TextProps, help="""
  62     The %s of the axis label.
  63     """)
  64 
  65     axis_label_text_font_size = Override(default={'value': "10pt"})
  66 
  67     axis_label_text_font_style = Override(default="italic")
  68 
  69     major_label_standoff = Int(default=5, help="""
  70     The distance in pixels that the major tick labels should be
  71     offset from the associated ticks.
  72     """)
  73 
  74     major_label_orientation = Either(Enum("horizontal", "vertical"), Float, help="""
  75     What direction the major label text should be oriented. If a
  76     number is supplied, the angle of the text is measured from horizontal.
  77     """)
  78 
  79     major_label_props = Include(TextProps, help="""
  80     The %s of the major tick labels.
  81     """)
  82 
  83     major_label_text_align = Override(default="center")
  84 
  85     major_label_text_baseline = Override(default="alphabetic")
  86 
  87     major_label_text_font_size = Override(default={'value': "8pt"})
  88 
  89     axis_props = Include(LineProps, help="""
  90     The %s of the axis line.
  91     """)
  92 
  93     major_tick_props = Include(LineProps, help="""
  94     The %s of the major ticks.
  95     """)
  96 
  97     major_tick_in = Int(default=2, help="""
  98     The distance in pixels that major ticks should extend into the
  99     main plot area.
  100     """)
  101 
  102     major_tick_out = Int(default=6, help="""
  103     The distance in pixels that major ticks should extend out of the
  104     main plot area.
  105     """)
  106 
  107     minor_tick_props = Include(LineProps, help="""
  108     The %s of the minor ticks.
  109     """)
  110 
  111     minor_tick_in = Int(default=0, help="""
  112     The distance in pixels that minor ticks should extend into the
  113     main plot area.
  114     """)
  115 
  116     minor_tick_out = Int(default=4, help="""
  117     The distance in pixels that major ticks should extend out of the
  118     main plot area.
  119     """)
  120 
  121 @abstract
  122 class ContinuousAxis(Axis):
  123     ''' A base class for all numeric, non-categorical axes types.
  124 
  125     '''
  126     pass
  127 
  128 class LinearAxis(ContinuousAxis):
  129     ''' An axis that picks nice numbers for tick locations on a
  130     linear scale. Configured with a ``BasicTickFormatter`` by default.
  131 
  132     '''
  133     ticker = Override(default=lambda: BasicTicker())
  134 
  135     formatter = Override(default=lambda: BasicTickFormatter())
  136 
  137 class LogAxis(ContinuousAxis):
  138     ''' An axis that picks nice numbers for tick locations on a
  139     log scale. Configured with a ``LogTickFormatter`` by default.
  140 
  141     '''
  142     ticker = Override(default=lambda: LogTicker())
  143 
  144     formatter = Override(default=lambda: LogTickFormatter())
  145 
  146 class CategoricalAxis(Axis):
  147     ''' An axis that picks evenly spaced tick locations for a
  148     collection of categories/factors.
  149 
  150     '''
  151     ticker = Override(default=lambda: CategoricalTicker())
  152 
  153     formatter = Override(default=lambda: CategoricalTickFormatter())
  154 
  155 class DatetimeAxis(LinearAxis):
  156     ''' An LinearAxis that picks nice numbers for tick locations on
  157     a datetime scale. Configured with a ``DatetimeTickFormatter`` by
  158     default.
  159 
  160     '''
  161 
  162     ticker = Override(default=lambda: DatetimeTicker())
  163 
  164     formatter = Override(default=lambda: DatetimeTickFormatter())
  165
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/bokeh/models/axes.py b/bokeh/models/axes.py
  --- a/bokeh/models/axes.py
  +++ b/bokeh/models/axes.py
  @@ -5,12 +5,12 @@
   from __future__ import absolute_import
   
   from ..core.has_props import abstract
  -from ..core.properties import Auto, Datetime, Either, Enum, Float, Include, Instance, Int, Override, String, Tuple
  +from ..core.properties import Auto, Datetime, Dict, Either, Enum, Float, Include, Instance, Int, Override, Seq, String, Tuple
   from ..core.property_mixins import LineProps, TextProps
   
   from .formatters import BasicTickFormatter, CategoricalTickFormatter, DatetimeTickFormatter, LogTickFormatter, TickFormatter
   from .renderers import GuideRenderer
  -from .tickers import Ticker, BasicTicker, LogTicker, CategoricalTicker, DatetimeTicker
  +from .tickers import Ticker, BasicTicker, LogTicker, CategoricalTicker, DatetimeTicker, FixedTicker
   
   @abstract
   class Axis(GuideRenderer):
  @@ -37,7 +37,29 @@
   
       ticker = Instance(Ticker, help="""
       A Ticker to use for computing locations of axis components.
  -    """)
  +
  +    The property may also be passed a sequence of floating point numbers as
  +    a shorthand for creating and configuring a ``FixedTicker``, e.g. the
  +    following code
  +
  +    .. code-block:: python
  +
  +        from bokeh.plotting import figure
  +
  +        p = figure()
  +        p.xaxis.ticker = [10, 20, 37.4]
  +
  +    is equivalent to:
  +
  +    .. code-block:: python
  +
  +        from bokeh.plotting import figure
  +        from bokeh.models.tickers import FixedTicker
  +
  +        p = figure()
  +        p.xaxis.ticker = FixedTicker(ticks=[10, 20, 37.4])
  +
  +    """).accepts(Seq(Float), lambda ticks: FixedTicker(ticks=ticks))
   
       formatter = Instance(TickFormatter, help="""
       A TickFormatter to use for formatting the visual appearance
  @@ -76,6 +98,11 @@
       number is supplied, the angle of the text is measured from horizontal.
       """)
   
  +    major_label_overrides = Dict(Either(Float, String), String, default={}, help="""
  +    Provide explicit tick label values for specific tick locations that
  +    override normal formatting.
  +    """)
  +
       major_label_props = Include(TextProps, help="""
       The %s of the major tick labels.
       """)
  diff --git a/sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py b/sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py
  --- a/sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py
  +++ b/sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py
  @@ -1,11 +1,10 @@
   from bokeh.plotting import figure, output_file, show
  -from bokeh.models import FixedTicker
   
  -output_file("axes.html")
  +output_file("fixed_ticks.html")
   
   p = figure(plot_width=400, plot_height=400)
   p.circle([1,2,3,4,5], [2,5,8,2,7], size=10)
   
  -p.xaxis[0].ticker=FixedTicker(ticks=[2, 3.5, 4])
  +p.xaxis.ticker = [2, 3.5, 4]
   
   show(p)
  
verification_info: {"golden_diff": "diff --git a/bokeh/models/axes.py b/bokeh/models/axes.py\n--- a/bokeh/models/axes.py\n+++ b/bokeh/models/axes.py\n@@ -5,12 +5,12 @@\n from __future__ import absolute_import\n \n from ..core.has_props import abstract\n-from ..core.properties import Auto, Datetime, Either, Enum, Float, Include, Instance, Int, Override, String, Tuple\n+from ..core.properties import Auto, Datetime, Dict, Either, Enum, Float, Include, Instance, Int, Override, Seq, String, Tuple\n from ..core.property_mixins import LineProps, TextProps\n \n from .formatters import BasicTickFormatter, CategoricalTickFormatter, DatetimeTickFormatter, LogTickFormatter, TickFormatter\n from .renderers import GuideRenderer\n-from .tickers import Ticker, BasicTicker, LogTicker, CategoricalTicker, DatetimeTicker\n+from .tickers import Ticker, BasicTicker, LogTicker, CategoricalTicker, DatetimeTicker, FixedTicker\n \n @abstract\n class Axis(GuideRenderer):\n@@ -37,7 +37,29 @@\n \n     ticker = Instance(Ticker, help=\"\"\"\n     A Ticker to use for computing locations of axis components.\n-    \"\"\")\n+\n+    The property may also be passed a sequence of floating point numbers as\n+    a shorthand for creating and configuring a ``FixedTicker``, e.g. the\n+    following code\n+\n+    .. code-block:: python\n+\n+        from bokeh.plotting import figure\n+\n+        p = figure()\n+        p.xaxis.ticker = [10, 20, 37.4]\n+\n+    is equivalent to:\n+\n+    .. code-block:: python\n+\n+        from bokeh.plotting import figure\n+        from bokeh.models.tickers import FixedTicker\n+\n+        p = figure()\n+        p.xaxis.ticker = FixedTicker(ticks=[10, 20, 37.4])\n+\n+    \"\"\").accepts(Seq(Float), lambda ticks: FixedTicker(ticks=ticks))\n \n     formatter = Instance(TickFormatter, help=\"\"\"\n     A TickFormatter to use for formatting the visual appearance\n@@ -76,6 +98,11 @@\n     number is supplied, the angle of the text is measured from horizontal.\n     \"\"\")\n \n+    major_label_overrides = Dict(Either(Float, String), String, default={}, help=\"\"\"\n+    Provide explicit tick label values for specific tick locations that\n+    override normal formatting.\n+    \"\"\")\n+\n     major_label_props = Include(TextProps, help=\"\"\"\n     The %s of the major tick labels.\n     \"\"\")\ndiff --git a/sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py b/sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py\n--- a/sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py\n+++ b/sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py\n@@ -1,11 +1,10 @@\n from bokeh.plotting import figure, output_file, show\n-from bokeh.models import FixedTicker\n \n-output_file(\"axes.html\")\n+output_file(\"fixed_ticks.html\")\n \n p = figure(plot_width=400, plot_height=400)\n p.circle([1,2,3,4,5], [2,5,8,2,7], size=10)\n \n-p.xaxis[0].ticker=FixedTicker(ticks=[2, 3.5, 4])\n+p.xaxis.ticker = [2, 3.5, 4]\n \n show(p)\n", "issue": "allow users to specify explicit tick labels\n`FixedTicker` allows users to specify fixed tick locations, but also need to allow users to specify explicit tick labels\n\n", "before_files": [{"content": "from bokeh.plotting import figure, output_file, show\nfrom bokeh.models import FixedTicker\n\noutput_file(\"axes.html\")\n\np = figure(plot_width=400, plot_height=400)\np.circle([1,2,3,4,5], [2,5,8,2,7], size=10)\n\np.xaxis[0].ticker=FixedTicker(ticks=[2, 3.5, 4])\n\nshow(p)\n", "path": "sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py"}, {"content": "''' Guide renderers for various kinds of axes that can be added to\nBokeh plots\n\n'''\nfrom __future__ import absolute_import\n\nfrom ..core.has_props import abstract\nfrom ..core.properties import Auto, Datetime, Either, Enum, Float, Include, Instance, Int, Override, String, Tuple\nfrom ..core.property_mixins import LineProps, TextProps\n\nfrom .formatters import BasicTickFormatter, CategoricalTickFormatter, DatetimeTickFormatter, LogTickFormatter, TickFormatter\nfrom .renderers import GuideRenderer\nfrom .tickers import Ticker, BasicTicker, LogTicker, CategoricalTicker, DatetimeTicker\n\n@abstract\nclass Axis(GuideRenderer):\n    ''' A base class that defines common properties for all axis types.\n\n    '''\n\n    bounds = Either(Auto, Tuple(Float, Float), Tuple(Datetime, Datetime), help=\"\"\"\n    Bounds for the rendered axis. If unset, the axis will span the\n    entire plot in the given dimension.\n    \"\"\")\n\n    x_range_name = String('default', help=\"\"\"\n    A particular (named) x-range to use for computing screen\n    locations when rendering an axis on the plot. If unset, use the\n    default x-range.\n    \"\"\")\n\n    y_range_name = String('default', help=\"\"\"\n    A particular (named) y-range to use for computing screen\n    locations when rendering an axis on the plot. If unset, use the\n    default y-range.\n    \"\"\")\n\n    ticker = Instance(Ticker, help=\"\"\"\n    A Ticker to use for computing locations of axis components.\n    \"\"\")\n\n    formatter = Instance(TickFormatter, help=\"\"\"\n    A TickFormatter to use for formatting the visual appearance\n    of ticks.\n    \"\"\")\n\n    axis_label = String(default='', help=\"\"\"\n    A text label for the axis, displayed parallel to the axis rule.\n\n    .. note::\n        LaTeX notation is not currently supported; please see\n        :bokeh-issue:`647` to track progress or contribute.\n\n    \"\"\")\n\n    axis_label_standoff = Int(default=5, help=\"\"\"\n    The distance in pixels that the axis labels should be offset\n    from the tick labels.\n    \"\"\")\n\n    axis_label_props = Include(TextProps, help=\"\"\"\n    The %s of the axis label.\n    \"\"\")\n\n    axis_label_text_font_size = Override(default={'value': \"10pt\"})\n\n    axis_label_text_font_style = Override(default=\"italic\")\n\n    major_label_standoff = Int(default=5, help=\"\"\"\n    The distance in pixels that the major tick labels should be\n    offset from the associated ticks.\n    \"\"\")\n\n    major_label_orientation = Either(Enum(\"horizontal\", \"vertical\"), Float, help=\"\"\"\n    What direction the major label text should be oriented. If a\n    number is supplied, the angle of the text is measured from horizontal.\n    \"\"\")\n\n    major_label_props = Include(TextProps, help=\"\"\"\n    The %s of the major tick labels.\n    \"\"\")\n\n    major_label_text_align = Override(default=\"center\")\n\n    major_label_text_baseline = Override(default=\"alphabetic\")\n\n    major_label_text_font_size = Override(default={'value': \"8pt\"})\n\n    axis_props = Include(LineProps, help=\"\"\"\n    The %s of the axis line.\n    \"\"\")\n\n    major_tick_props = Include(LineProps, help=\"\"\"\n    The %s of the major ticks.\n    \"\"\")\n\n    major_tick_in = Int(default=2, help=\"\"\"\n    The distance in pixels that major ticks should extend into the\n    main plot area.\n    \"\"\")\n\n    major_tick_out = Int(default=6, help=\"\"\"\n    The distance in pixels that major ticks should extend out of the\n    main plot area.\n    \"\"\")\n\n    minor_tick_props = Include(LineProps, help=\"\"\"\n    The %s of the minor ticks.\n    \"\"\")\n\n    minor_tick_in = Int(default=0, help=\"\"\"\n    The distance in pixels that minor ticks should extend into the\n    main plot area.\n    \"\"\")\n\n    minor_tick_out = Int(default=4, help=\"\"\"\n    The distance in pixels that major ticks should extend out of the\n    main plot area.\n    \"\"\")\n\n@abstract\nclass ContinuousAxis(Axis):\n    ''' A base class for all numeric, non-categorical axes types.\n\n    '''\n    pass\n\nclass LinearAxis(ContinuousAxis):\n    ''' An axis that picks nice numbers for tick locations on a\n    linear scale. Configured with a ``BasicTickFormatter`` by default.\n\n    '''\n    ticker = Override(default=lambda: BasicTicker())\n\n    formatter = Override(default=lambda: BasicTickFormatter())\n\nclass LogAxis(ContinuousAxis):\n    ''' An axis that picks nice numbers for tick locations on a\n    log scale. Configured with a ``LogTickFormatter`` by default.\n\n    '''\n    ticker = Override(default=lambda: LogTicker())\n\n    formatter = Override(default=lambda: LogTickFormatter())\n\nclass CategoricalAxis(Axis):\n    ''' An axis that picks evenly spaced tick locations for a\n    collection of categories/factors.\n\n    '''\n    ticker = Override(default=lambda: CategoricalTicker())\n\n    formatter = Override(default=lambda: CategoricalTickFormatter())\n\nclass DatetimeAxis(LinearAxis):\n    ''' An LinearAxis that picks nice numbers for tick locations on\n    a datetime scale. Configured with a ``DatetimeTickFormatter`` by\n    default.\n\n    '''\n\n    ticker = Override(default=lambda: DatetimeTicker())\n\n    formatter = Override(default=lambda: DatetimeTickFormatter())\n", "path": "bokeh/models/axes.py"}], "after_files": [{"content": "from bokeh.plotting import figure, output_file, show\n\noutput_file(\"fixed_ticks.html\")\n\np = figure(plot_width=400, plot_height=400)\np.circle([1,2,3,4,5], [2,5,8,2,7], size=10)\n\np.xaxis.ticker = [2, 3.5, 4]\n\nshow(p)\n", "path": "sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py"}, {"content": "''' Guide renderers for various kinds of axes that can be added to\nBokeh plots\n\n'''\nfrom __future__ import absolute_import\n\nfrom ..core.has_props import abstract\nfrom ..core.properties import Auto, Datetime, Dict, Either, Enum, Float, Include, Instance, Int, Override, Seq, String, Tuple\nfrom ..core.property_mixins import LineProps, TextProps\n\nfrom .formatters import BasicTickFormatter, CategoricalTickFormatter, DatetimeTickFormatter, LogTickFormatter, TickFormatter\nfrom .renderers import GuideRenderer\nfrom .tickers import Ticker, BasicTicker, LogTicker, CategoricalTicker, DatetimeTicker, FixedTicker\n\n@abstract\nclass Axis(GuideRenderer):\n    ''' A base class that defines common properties for all axis types.\n\n    '''\n\n    bounds = Either(Auto, Tuple(Float, Float), Tuple(Datetime, Datetime), help=\"\"\"\n    Bounds for the rendered axis. If unset, the axis will span the\n    entire plot in the given dimension.\n    \"\"\")\n\n    x_range_name = String('default', help=\"\"\"\n    A particular (named) x-range to use for computing screen\n    locations when rendering an axis on the plot. If unset, use the\n    default x-range.\n    \"\"\")\n\n    y_range_name = String('default', help=\"\"\"\n    A particular (named) y-range to use for computing screen\n    locations when rendering an axis on the plot. If unset, use the\n    default y-range.\n    \"\"\")\n\n    ticker = Instance(Ticker, help=\"\"\"\n    A Ticker to use for computing locations of axis components.\n\n    The property may also be passed a sequence of floating point numbers as\n    a shorthand for creating and configuring a ``FixedTicker``, e.g. the\n    following code\n\n    .. code-block:: python\n\n        from bokeh.plotting import figure\n\n        p = figure()\n        p.xaxis.ticker = [10, 20, 37.4]\n\n    is equivalent to:\n\n    .. code-block:: python\n\n        from bokeh.plotting import figure\n        from bokeh.models.tickers import FixedTicker\n\n        p = figure()\n        p.xaxis.ticker = FixedTicker(ticks=[10, 20, 37.4])\n\n    \"\"\").accepts(Seq(Float), lambda ticks: FixedTicker(ticks=ticks))\n\n    formatter = Instance(TickFormatter, help=\"\"\"\n    A TickFormatter to use for formatting the visual appearance\n    of ticks.\n    \"\"\")\n\n    axis_label = String(default='', help=\"\"\"\n    A text label for the axis, displayed parallel to the axis rule.\n\n    .. note::\n        LaTeX notation is not currently supported; please see\n        :bokeh-issue:`647` to track progress or contribute.\n\n    \"\"\")\n\n    axis_label_standoff = Int(default=5, help=\"\"\"\n    The distance in pixels that the axis labels should be offset\n    from the tick labels.\n    \"\"\")\n\n    axis_label_props = Include(TextProps, help=\"\"\"\n    The %s of the axis label.\n    \"\"\")\n\n    axis_label_text_font_size = Override(default={'value': \"10pt\"})\n\n    axis_label_text_font_style = Override(default=\"italic\")\n\n    major_label_standoff = Int(default=5, help=\"\"\"\n    The distance in pixels that the major tick labels should be\n    offset from the associated ticks.\n    \"\"\")\n\n    major_label_orientation = Either(Enum(\"horizontal\", \"vertical\"), Float, help=\"\"\"\n    What direction the major label text should be oriented. If a\n    number is supplied, the angle of the text is measured from horizontal.\n    \"\"\")\n\n    major_label_overrides = Dict(Either(Float, String), String, default={}, help=\"\"\"\n    Provide explicit tick label values for specific tick locations that\n    override normal formatting.\n    \"\"\")\n\n    major_label_props = Include(TextProps, help=\"\"\"\n    The %s of the major tick labels.\n    \"\"\")\n\n    major_label_text_align = Override(default=\"center\")\n\n    major_label_text_baseline = Override(default=\"alphabetic\")\n\n    major_label_text_font_size = Override(default={'value': \"8pt\"})\n\n    axis_props = Include(LineProps, help=\"\"\"\n    The %s of the axis line.\n    \"\"\")\n\n    major_tick_props = Include(LineProps, help=\"\"\"\n    The %s of the major ticks.\n    \"\"\")\n\n    major_tick_in = Int(default=2, help=\"\"\"\n    The distance in pixels that major ticks should extend into the\n    main plot area.\n    \"\"\")\n\n    major_tick_out = Int(default=6, help=\"\"\"\n    The distance in pixels that major ticks should extend out of the\n    main plot area.\n    \"\"\")\n\n    minor_tick_props = Include(LineProps, help=\"\"\"\n    The %s of the minor ticks.\n    \"\"\")\n\n    minor_tick_in = Int(default=0, help=\"\"\"\n    The distance in pixels that minor ticks should extend into the\n    main plot area.\n    \"\"\")\n\n    minor_tick_out = Int(default=4, help=\"\"\"\n    The distance in pixels that major ticks should extend out of the\n    main plot area.\n    \"\"\")\n\n@abstract\nclass ContinuousAxis(Axis):\n    ''' A base class for all numeric, non-categorical axes types.\n\n    '''\n    pass\n\nclass LinearAxis(ContinuousAxis):\n    ''' An axis that picks nice numbers for tick locations on a\n    linear scale. Configured with a ``BasicTickFormatter`` by default.\n\n    '''\n    ticker = Override(default=lambda: BasicTicker())\n\n    formatter = Override(default=lambda: BasicTickFormatter())\n\nclass LogAxis(ContinuousAxis):\n    ''' An axis that picks nice numbers for tick locations on a\n    log scale. Configured with a ``LogTickFormatter`` by default.\n\n    '''\n    ticker = Override(default=lambda: LogTicker())\n\n    formatter = Override(default=lambda: LogTickFormatter())\n\nclass CategoricalAxis(Axis):\n    ''' An axis that picks evenly spaced tick locations for a\n    collection of categories/factors.\n\n    '''\n    ticker = Override(default=lambda: CategoricalTicker())\n\n    formatter = Override(default=lambda: CategoricalTickFormatter())\n\nclass DatetimeAxis(LinearAxis):\n    ''' An LinearAxis that picks nice numbers for tick locations on\n    a datetime scale. Configured with a ``DatetimeTickFormatter`` by\n    default.\n\n    '''\n\n    ticker = Override(default=lambda: DatetimeTicker())\n\n    formatter = Override(default=lambda: DatetimeTickFormatter())\n", "path": "bokeh/models/axes.py"}]}