JuliaPlots/Plots.jl

`groupedbar` fails to add error bars with plotly backend

Open

#5 388 ouverte le 21 avr. 2022

Voir sur GitHub
 (3 commentaires) (0 réactions) (0 assignés)Julia (381 forks)batch import
StatsPlotsbughelp wanted

Métriques du dépôt

Stars
 (1 943 stars)
Métriques de merge PR
 (Merge moyen 13j 6h) (2 PRs mergées en 30 j)

Description

I want to add error bars to a grouped bar chart using groupedbar function using the following line.

groupedbar(rand(3,2); yerror=rand(3,2))

When I use the gr() backend, things work okay, as shown in the screenshot.

image

However, if I use the plotly() backend, an error is displayed and no plot is produced.

Error showing value of type Plots.Plot{Plots.PlotlyBackend}:
ERROR: BoundsError: attempt to access 1-element Vector{Int64} at index [2:3]
Stacktrace:
  [1] throw_boundserror(A::Vector{Int64}, I::Tuple{UnitRange{Int64}})
    @ Base .\abstractarray.jl:691
  [2] checkbounds
    @ .\abstractarray.jl:656 [inlined]
  [3] getindex(A::Vector{Int64}, I::UnitRange{Int64})
    @ Base .\array.jl:867
  [4] plotly_series_segments(series::Plots.Series, plotattributes_base::Dict{Symbol, Any}, x::Vector{Float64}, y::Vector{Float64}, z::Nothing, clims::Tuple{Float64, Float64})
    @ Plots C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:954
  [5] plotly_series(plt::Plots.Plot{Plots.PlotlyBackend}, series::Plots.Series)
    @ Plots C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:606
  [6] JuliaPlots/StatsPlots.jl#369
    @ .\array.jl:0 [inlined]
  [7] MappingRF
    @ .\reduce.jl:95 [inlined]
  [8] _foldl_impl(op::Base.MappingRF{Plots.var"#369#370"{Plots.Plot{Plots.PlotlyBackend}}, Base.BottomRF{typeof(vcat)}},
 init::Base._InitialValue, itr::Vector{Plots.Series})
    @ Base .\reduce.jl:62
  [9] foldl_impl
    @ .\reduce.jl:48 [inlined]
 [10] mapfoldl_impl
    @ .\reduce.jl:44 [inlined]
 [11] #mapfoldl#244
    @ .\reduce.jl:162 [inlined]
 [12] mapfoldl
    @ .\reduce.jl:162 [inlined]
 [13] #mapreduce#248
    @ .\reduce.jl:289 [inlined]
 [14] mapreduce
    @ .\reduce.jl:289 [inlined]
 [15] #reduce#250
    @ .\reduce.jl:458 [inlined]
 [16] reduce
    @ .\reduce.jl:458 [inlined]
 [17] plotly_series
    @ C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:1037 [inlined]
 [18] plotly_series_json(plt::Plots.Plot{Plots.PlotlyBackend})
    @ Plots C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:1041
 [19] js_body
    @ C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:1106 [inlined]
 [20] plotly_html_body(plt::Plots.Plot{Plots.PlotlyBackend}, style::Nothing)
    @ Plots C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:1094
 [21] plotly_html_body
    @ C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:1068 [inlined]
 [22] html_body
    @ C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:1046 [inlined]
 [23] #standalone_html#397
    @ C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\web.jl:10 [inlined]
 [24] write_temp_html(plt::Plots.Plot{Plots.PlotlyBackend})
    @ Plots C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\web.jl:43
 [25] standalone_html_window(plt::Plots.Plot{Plots.PlotlyBackend})
    @ Plots C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\web.jl:57
 [26] _display
    @ C:\Users\█████\.julia\packages\Plots\8ouqB\src\backends\plotly.jl:1130 [inlined]
 [27] display(#unused#::Plots.PlotsDisplay, plt::Plots.Plot{Plots.PlotlyBackend})
    @ Plots C:\Users\█████\.julia\packages\Plots\8ouqB\src\output.jl:148
 [28] display(x::Any)
    @ Base.Multimedia .\multimedia.jl:328
 [29] #invokelatest#2
    @ .\essentials.jl:716 [inlined]
 [30] invokelatest
    @ .\essentials.jl:714 [inlined]
 [31] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{Nothing, AbstractDisplay})
    @ REPL C:\Users\█████\AppData\Local\Programs\Julia-1.7.2\share\julia\stdlib\v1.7\REPL\src\REPL.jl:293
 [32] (::REPL.var"#45#46"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
    @ REPL C:\Users\█████\AppData\Local\Programs\Julia-1.7.2\share\julia\stdlib\v1.7\REPL\src\REPL.jl:277
 [33] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
    @ REPL C:\Users\█████\AppData\Local\Programs\Julia-1.7.2\share\julia\stdlib\v1.7\REPL\src\REPL.jl:510
 [34] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
    @ REPL C:\Users\█████\AppData\Local\Programs\Julia-1.7.2\share\julia\stdlib\v1.7\REPL\src\REPL.jl:275
 [35] (::REPL.var"#do_respond#66"{Bool, Bool, REPL.var"#77#87"{REPL.LineEditREPL, REPL.REPLHistoryProvider}, REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::Any, ok::Bool)
    @ REPL C:\Users\█████\AppData\Local\Programs\Julia-1.7.2\share\julia\stdlib\v1.7\REPL\src\REPL.jl:846
 [36] #invokelatest#2
    @ .\essentials.jl:716 [inlined]
 [37] invokelatest
    @ .\essentials.jl:714 [inlined]
 [38] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ REPL.LineEdit C:\Users\█████\AppData\Local\Programs\Julia-1.7.2\share\julia\stdlib\v1.7\REPL\src\LineEdit.jl:2493
 [39] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
    @ REPL C:\Users\█████\AppData\Local\Programs\Julia-1.7.2\share\julia\stdlib\v1.7\REPL\src\REPL.jl:1232
 [40] (::REPL.var"#49#54"{REPL.LineEditREPL, REPL.REPLBackendRef})()
    @ REPL .\task.jl:423

Is it a bug, or is there anything I should do to make it work? Thank you!

Julia version 1.7.2 StatsPlots version 0.14.33

Guide contributeur