From 0cc1bd2dc6b3fa96fd6e4b7f7292d583a80475dd Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Wed, 6 Jul 2016 16:51:54 -0400 Subject: [PATCH] sample ticks if too many discrete values; use get_ticks in plotly to fix discrete ticks; allow ticks==false in pyplot; closes #356 --- src/axes.jl | 9 ++++++++- src/backends/plotly.jl | 2 +- src/backends/pyplot.jl | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/axes.jl b/src/axes.jl index bb66c30c..f00704fa 100644 --- a/src/axes.jl +++ b/src/axes.jl @@ -122,7 +122,14 @@ function get_ticks(axis::Axis) ticks = axis[:ticks] dvals = axis[:discrete_values] if !isempty(dvals) && ticks == :auto - axis[:continuous_values], dvals + cv, dv = axis[:continuous_values], dvals + # TODO: better/smarter cutoff values for sampling ticks + if length(cv) > 30 + rng = Int[round(Int,i) for i in linspace(1, length(cv), 15)] + cv[rng], dv[rng] + else + cv, dv + end else ticks end diff --git a/src/backends/plotly.jl b/src/backends/plotly.jl index 666d8b3e..cf2ac4c7 100644 --- a/src/backends/plotly.jl +++ b/src/backends/plotly.jl @@ -190,7 +190,7 @@ function plotly_axis(axis::Axis, sp::Subplot) end # ticks - ticks = axis[:ticks] + ticks = get_ticks(axis) if ticks != :auto ttype = ticksType(ticks) if ttype == :ticks diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index 6e21ae19..02bb55b5 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -935,7 +935,7 @@ end function py_set_ticks(ax, ticks, letter) ticks == :auto && return axis = ax[Symbol(letter,"axis")] - if ticks == :none || ticks == nothing + if ticks == :none || ticks == nothing || ticks == false kw = KW() for dir in (:top,:bottom,:left,:right) kw[dir] = kw[Symbol(:label,dir)] = "off"