implement framestyles for plotly(js)
This commit is contained in:
parent
a981dc71f9
commit
c89b125b9a
@ -33,6 +33,7 @@ const _plotly_attr = merge_with_base_supported([
|
|||||||
:inset_subplots,
|
:inset_subplots,
|
||||||
:bar_width,
|
:bar_width,
|
||||||
:clims,
|
:clims,
|
||||||
|
:framestyle,
|
||||||
])
|
])
|
||||||
|
|
||||||
const _plotly_seriestype = [
|
const _plotly_seriestype = [
|
||||||
@ -47,6 +48,17 @@ const _plotly_marker = [
|
|||||||
const _plotly_scale = [:identity, :log10]
|
const _plotly_scale = [:identity, :log10]
|
||||||
is_subplot_supported(::PlotlyBackend) = true
|
is_subplot_supported(::PlotlyBackend) = true
|
||||||
# is_string_supported(::PlotlyBackend) = true
|
# is_string_supported(::PlotlyBackend) = true
|
||||||
|
const _plotly_framestyles = [:box, :axes, :zerolines, :grid, :none]
|
||||||
|
const _plotly_framestyle_defaults = Dict(:semi => :box, :origin => :zerolines)
|
||||||
|
function _plotly_framestyle(style::Symbol)
|
||||||
|
if style in _plotly_framestyles
|
||||||
|
return style
|
||||||
|
else
|
||||||
|
default_style = get(_plotly_framestyle_defaults, style, :axes)
|
||||||
|
warn("Framestyle :$style is not supported by Plotly and PlotlyJS. :$default_style was cosen instead.")
|
||||||
|
default_style
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------------------
|
# --------------------------------------------------------------------------------------
|
||||||
@ -212,13 +224,19 @@ end
|
|||||||
|
|
||||||
function plotly_axis(axis::Axis, sp::Subplot)
|
function plotly_axis(axis::Axis, sp::Subplot)
|
||||||
letter = axis[:letter]
|
letter = axis[:letter]
|
||||||
|
framestyle = sp[:framestyle]
|
||||||
ax = KW(
|
ax = KW(
|
||||||
|
:visible => framestyle != :none,
|
||||||
:title => axis[:guide],
|
:title => axis[:guide],
|
||||||
:showgrid => axis[:grid],
|
:showgrid => axis[:grid],
|
||||||
:gridcolor => rgba_string(plot_color(axis[:foreground_color_grid], axis[:gridalpha])),
|
:gridcolor => rgba_string(plot_color(axis[:foreground_color_grid], axis[:gridalpha])),
|
||||||
:gridwidth => axis[:gridlinewidth],
|
:gridwidth => axis[:gridlinewidth],
|
||||||
:zeroline => false,
|
:zeroline => framestyle == :zerolines,
|
||||||
|
:zerolinecolor => rgba_string(axis[:foreground_color_axis]),
|
||||||
|
:showline => framestyle in (:box, :axes),
|
||||||
|
:linecolor => rgba_string(plot_color(axis[:foreground_color_axis])),
|
||||||
:ticks => "inside",
|
:ticks => "inside",
|
||||||
|
:mirror => framestyle == :box,
|
||||||
)
|
)
|
||||||
|
|
||||||
if letter in (:x,:y)
|
if letter in (:x,:y)
|
||||||
@ -232,7 +250,7 @@ function plotly_axis(axis::Axis, sp::Subplot)
|
|||||||
ax[:titlefont] = plotly_font(axis[:guidefont], axis[:foreground_color_guide])
|
ax[:titlefont] = plotly_font(axis[:guidefont], axis[:foreground_color_guide])
|
||||||
ax[:type] = plotly_scale(axis[:scale])
|
ax[:type] = plotly_scale(axis[:scale])
|
||||||
ax[:tickfont] = plotly_font(axis[:tickfont], axis[:foreground_color_text])
|
ax[:tickfont] = plotly_font(axis[:tickfont], axis[:foreground_color_text])
|
||||||
ax[:tickcolor] = rgba_string(axis[:foreground_color_axis])
|
ax[:tickcolor] = framestyle in (:zerolines, :grid) ? rgba_string(invisible()) : rgb_string(axis[:foreground_color_axis])
|
||||||
ax[:linecolor] = rgba_string(axis[:foreground_color_axis])
|
ax[:linecolor] = rgba_string(axis[:foreground_color_axis])
|
||||||
|
|
||||||
# lims
|
# lims
|
||||||
@ -299,6 +317,9 @@ function plotly_layout(plt::Plot)
|
|||||||
|
|
||||||
d_out[:plot_bgcolor] = rgba_string(sp[:background_color_inside])
|
d_out[:plot_bgcolor] = rgba_string(sp[:background_color_inside])
|
||||||
|
|
||||||
|
# set to supported framestyle
|
||||||
|
sp[:framestyle] = _plotly_framestyle(sp[:framestyle])
|
||||||
|
|
||||||
# if any(is3d, seriesargs)
|
# if any(is3d, seriesargs)
|
||||||
if is3d(sp)
|
if is3d(sp)
|
||||||
d_out[:scene] = KW(
|
d_out[:scene] = KW(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user