# Plotting broken?

**URL:** <https://discourse.julialang.org/t/plotting-broken/29692>\
**Category:** General Usage\
**Created:** [October 9, 2019, 7:20pm UTC](https://discourse.julialang.org/t/plotting-broken/29692 "2019-10-09T19:20:49Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![adannenberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adannenberg/32/7869_2.png) [@adannenberg](https://discourse.julialang.org/u/adannenberg)\
**Post date:** [October 9, 2019, 7:20pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/1 "2019-10-09T19:20:49Z")

</div>

After upgrading (in Atom + Juno on Ubuntu 19.04 inside VirtualBox) julia-client from 0.10.1 to 0.11.2, uber-juno from 0.2.0 to 0.3.0 I find the following problem. Any help?

julia\> using Plots

julia\> plot(1:5)

Error showing value of type Plots.Plot{Plots.GRBackend}:

ERROR: ArgumentError: broadcasting over dictionaries and `NamedTuple`s is reserved

Stacktrace:

[1] broadcastable(::Dict{String,Any}) at ./broadcast.jl:660

[2] broadcasted(::Function, ::Dict{String,Any}, ::Int64) at ./broadcast.jl:1213

[3] plotsize() at /home/alex/.julia/packages/Atom/BVajq/src/frontend.jl:21

[4] plotpane\_io\_ctx(::Base.GenericIOBuffer{Array{UInt8,1}}) at /home/alex/.julia/packages/Atom/BVajq/src/display/showdisplay.jl:

5

[5] displayinplotpane(::Plots.Plot{Plots.GRBackend}) at /home/alex/.julia/packages/Atom/BVajq/src/display/showdisplay.jl:55

[6] display(::Atom.JunoDisplay, ::Plots.Plot{Plots.GRBackend}) at /home/alex/.julia/packages/Atom/BVajq/src/display/showdisplay.jl:102

[7] display(::Any) at ./multimedia.jl:323

[8] #invokelatest#1 at ./essentials.jl:790 [inlined]

[9] invokelatest at ./essentials.jl:789 [inlined]

[10] print\_response(::IO, ::Any, ::Bool, ::Bool, ::Any) at /buildworker/worker/package\_linux64/build/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:156

[11] print\_response(::REPL.AbstractREPL, ::Any, ::Bool, ::Bool) at /buildworker/worker/package\_linux64/build/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:141

[12] (::getfield(REPL, Symbol(“#do\_respond#38”)){Bool,getfield(Atom, Symbol(“##178#179”)),REPL.LineEditREPL,REPL.LineEdit.Prompt})(::Any, ::Any, ::Any) at /buildworker/worker/package\_linux64/build/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:718

[13] #invokelatest#1 at ./essentials.jl:790 [inlined]

[14] invokelatest at ./essentials.jl:789 [inlined]

[15] run\_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at /buildworker/worker/package\_linux64/build/usr/share/julia/stdlib/v1.2/REPL/src/LineEdit.jl:2306

[16] run\_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at /buildworker/worker/package\_linux64/build/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:1038

[17] run\_repl(::REPL.AbstractREPL, ::Any) at /buildworker/worker/package\_linux64/build/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:201

[18] (::getfield(Base, Symbol(“##737#739”)){Bool,Bool,Bool,Bool})(::Module) at ./client.jl:390

[19] #invokelatest#1 at ./essentials.jl:790 [inlined]

[20] invokelatest at ./essentials.jl:789 [inlined]

[21] run\_main\_repl(::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at ./client.jl:374

[22] exec\_options(::Base.JLOptions) at ./client.jl:312

[23] \_start() at ./client.jl:464

---

<div class="post-metadata">

**Author:** ![StevenWhitaker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevenwhitaker/32/9749_2.png) [@StevenWhitaker](https://discourse.julialang.org/u/StevenWhitaker)\
**Post date:** [October 9, 2019, 8:52pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/2 "2019-10-09T20:52:18Z")

</div>

I just ran into the same problem on Windows 10 with `heatmap`.

---

<div class="post-metadata">

**Author:** ![Vova](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vova/32/13898_2.png) [@Vova](https://discourse.julialang.org/u/Vova)\
**Post date:** [October 10, 2019, 1:01am UTC](https://discourse.julialang.org/t/plotting-broken/29692/3 "2019-10-10T01:01:32Z")

</div>

The same problem…

---

<div class="post-metadata">

**Author:** ![adannenberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adannenberg/32/7869_2.png) [@adannenberg](https://discourse.julialang.org/u/adannenberg)\
**Post date:** [October 10, 2019, 1:34am UTC](https://discourse.julialang.org/t/plotting-broken/29692/4 "2019-10-10T01:34:38Z")

</div>

I was able to fix the problem by deleting my ~/.julia directory and doing Pkg.add(“Plots”) after everything else rebuilt upon launching Julia. I’m sure there’s a better way to do it, but that worked for me.

---

<div class="post-metadata">

**Author:** ![jonniedie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jonniedie/32/12842_2.png) [@jonniedie](https://discourse.julialang.org/u/jonniedie)\
**Post date:** [October 27, 2019, 3:24pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/5 "2019-10-27T15:24:29Z")

</div>

Same problem for me with macOS 10.14.6

---

<div class="post-metadata">

**Author:** ![Jon\_Norberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jon_norberg/32/3218_2.png) [@Jon\_Norberg](https://discourse.julialang.org/u/Jon_Norberg)\
**Post date:** [October 30, 2019, 2:23pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/6 "2019-10-30T14:23:34Z")

</div>

Also happens using Images Gray.(rand(2,2))

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [October 30, 2019, 3:01pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/7 "2019-10-30T15:01:33Z")

</div>

Please make sure you’re on an up-to-date version of Atom.jl (0.11.3 is the latest version).

You should also be getting a warning that whatever version of Atom.jl you’re running is too old, but apparently that check doesn’t work for anyone.

Edit: Just tested it again and I’m getting  
 ![grafik](https://global.discourse-cdn.com/julialang/original/3X/5/6/56521dc0f8536e0ea33148a70345e402a6a16dc9.png)

---

<div class="post-metadata">

**Author:** ![Jon\_Norberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jon_norberg/32/3218_2.png) [@Jon\_Norberg](https://discourse.julialang.org/u/Jon_Norberg)\
**Post date:** [October 30, 2019, 8:21pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/8 "2019-10-30T20:21:27Z")

</div>

I apparently thought I had done that but hadn’t. Works now. Thanks

---

<div class="post-metadata">

**Author:** ![anon92994695](https://avatars.discourse-cdn.com/v4/letter/a/ce7236/32.png) [@anon92994695](https://discourse.julialang.org/u/anon92994695)\
**Post date:** [October 30, 2019, 9:14pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/9 "2019-10-30T21:14:21Z")

</div>

Update all software and packages, close Atom/Juno and rebuild Plots. 🙂

---

<div class="post-metadata">

**Author:** ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)\
**Post date:** [October 30, 2019, 10:13pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/10 "2019-10-30T22:13:34Z")

</div>

Would be good to find a way to automate these updates if possible without everybody having to uninstall and reinstall and build by hand.

---

<div class="post-metadata">

**Author:** ![adannenberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adannenberg/32/7869_2.png) [@adannenberg](https://discourse.julialang.org/u/adannenberg)\
**Post date:** [October 30, 2019, 10:36pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/11 "2019-10-30T22:36:43Z")

</div>

Yup, the real issue is that Julia still has a number of glitchy features that makes it too idiosyncratic to be adopted by a Matlab-sized audience which, necessarily, would include many people without significant admin / command line / … skills.

---

<div class="post-metadata">

**Author:** ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)\
**Post date:** [October 31, 2019, 12:51am UTC](https://discourse.julialang.org/t/plotting-broken/29692/12 "2019-10-31T00:51:26Z")

</div>

@adannenberg to be fair users are paying a lot for the smoothness of the matlab experience, and lose a lot of other kinds of other flexibility by doing that. And “Julia” isn’t a single entity like you are describing, its a software ecosystem. There will always be idosyncratic messy corners (as there are in R and Python) where you need to use the command line to fix problems.

The real message here should be to feel free to jump in and fix whatever you think should work more smoothly 🙂

---

<div class="post-metadata">

**Author:** ![adannenberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adannenberg/32/7869_2.png) [@adannenberg](https://discourse.julialang.org/u/adannenberg)\
**Post date:** [October 31, 2019, 2:02am UTC](https://discourse.julialang.org/t/plotting-broken/29692/13 "2019-10-31T02:02:47Z")

</div>

@Raf, I’m not competent to fix what doesn’t work in Julia, sadly :\< I’m just a platform agnostic guy who has used Matlab and R extensively, Python moderately, but is a newbie to Julia. I can’t speak to the use cases that are not common to all four languages, but for the bread-and-butter number crunching that most users come for (I think), it is the case that Julia is much glitchier than R, Matlab or Python. Yes, there are always idiosyncratic, messy corners. But it matters how many there are! So, if Julia wants to increase its adoption by people like me, the core team needs to make the user experience smoother. For example, and very concretely, the fact that loop variables are scoped differently on Atom+Juno than on Jupyter is a huge problem. You just can’t have the language work differently for any program with a loop on the two main development platforms! Not if you want to become a mainstream product…

Don’t misunderstand me, please: I’m a Julia enthusiast and hope the language gains popularity and penetration, and that the toolset matures and expands. I’m just pointing out that for non-power users the fact that the edges are a bit ragged can outweigh the all the speed and flexibility stuff. Those ragged edges present no obstacle to the hardcore developers who actually push Julia forward, so I think they underestimate their importance to the broader group of users they want to attract to Julia. Fair enough?

---

<div class="post-metadata">

**Author:** ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)\
**Post date:** [October 31, 2019, 2:18am UTC](https://discourse.julialang.org/t/plotting-broken/29692/14 "2019-10-31T02:18:02Z")

</div>

You would be surprised! Julia is all in julia and the internals are often easy to understand. Seriously just jump in there, its not like R or python where you have to learn anything special.

Maybe try to outline how to fix the Juno/Jupyter issue? Make an issue with your proposed behaviors, try and work out why they are how they are and what it would take to solve them, and why it’s worth the effort. That would be a really helpful contribution.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [October 31, 2019, 10:39am UTC](https://discourse.julialang.org/t/plotting-broken/29692/15 "2019-10-31T10:39:06Z")

</div>

> [@dpsanders](#):
>
> Would be good to find a way to automate these updates if possible without everybody having to uninstall and reinstall and build by hand.

We’re not going to start `Pkg.updating()` for you (and I’m sure you wouldn’t want us to). Juno could probably ship all its dependencies so you’d never run into these kinds of problems (like the VSCode extension does), but that would require completely re-architecting everything – not really a short-term solution.

> [@adannenberg](#):
>
> Yup, the real issue is that Julia still has a number of glitchy features that makes it too idiosyncratic to be adopted by a Matlab-sized audience which, necessarily, would include many people without significant admin / command line / … skills.

Less glitchy features and idiosyncrasis come with maturity; Julia 1.0 has been out for roughly a year now, so I wouldn’t quite call it (or the package ecosystem, for that matter) _mature_.

> [@adannenberg](#):
>
> For example, and very concretely, the fact that loop variables are scoped differently on Atom+Juno than on Jupyter is a huge problem. You just can’t have the language work differently for any program with a loop on the two main development platforms! Not if you want to become a mainstream product…

The outlier here is Jupyter with its own solution to the “soft-global-scope issue”. Juno can’t quite take the right approach, because a big part of Juno is that you evaluate code in files _both_ interactively and “compiled” (for lack of a better word). No-one wants a situation where a loop written in a file is valid when executed block-by-block in Juno, but not when the file (or module) is `include`d.

> [@adannenberg](#):
>
> Don’t misunderstand me, please: I’m a Julia enthusiast and hope the language gains popularity and penetration, and that the toolset matures and expands. I’m just pointing out that for non-power users the fact that the edges are a bit ragged can outweigh the all the speed and flexibility stuff. Those ragged edges present no obstacle to the hardcore developers who actually push Julia forward, so I think they underestimate their importance to the broader group of users they want to attract to Julia. Fair enough?

It’s super important to get feedback from newcomers and non-power-users, so thanks for chiming in here! Please do chime in whenever something is annoying/hard to grasp/broken.  
Also, improving usability (especially for newcomers) is _really difficult_: In most cases you have to solely rely on feedback to a) figure out what should be improved and b) for every change, since developers usually have already gotten used to any “idiosyncratic messy corners” 🙂

One more thing: If applicable, use tags or post in a more specific category. I can’t/don’t want to monitor all of `Usage`, but a post is much more likely to get my attention if you tag it with “Juno” or post it in the “Juno” category.

---

<div class="post-metadata">

**Author:** ![adannenberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adannenberg/32/7869_2.png) [@adannenberg](https://discourse.julialang.org/u/adannenberg)\
**Post date:** [October 31, 2019, 10:59am UTC](https://discourse.julialang.org/t/plotting-broken/29692/16 "2019-10-31T10:59:37Z")

</div>

Thanks @Raf and @pfitzseb for the feedback and suggestions. Noted 😃 Sorry about the lack of useful tags. Is there a way of adding tags after the fact? I can’t seem to find one…

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [October 31, 2019, 11:05am UTC](https://discourse.julialang.org/t/plotting-broken/29692/17 "2019-10-31T11:05:00Z")

</div>

> [@pfitzseb](#):
>
> We’re not going to start `Pkg.updating()` for you (and I’m sure you wouldn’t want us to)

I don’t know how @dpsanders meant it, but for me the much more annoying (although also not super annoying) part is the `apm uninstall julia-client` and `apm install julia-client`. Not so much the `] up Juno Atom`.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [October 31, 2019, 11:21am UTC](https://discourse.julialang.org/t/plotting-broken/29692/18 "2019-10-31T11:21:23Z")

</div>

Fair enough. That’s a completly different issue though.

---

<div class="post-metadata">

**Author:** ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)\
**Post date:** [October 31, 2019, 12:26pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/19 "2019-10-31T12:26:49Z")

</div>

Yes one of the things I meant was the `apm` commands.  
If only the “Juno-related” Julia packages are involved, which are only used for Juno, and there was an opt-in option, I think I would be happy for it to automatically `] up Juno Atom` as well.

(Is it still the case that any package operation touches unrelated packages? It seems to be, but it shouldn’t be.)

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [October 31, 2019, 3:13pm UTC](https://discourse.julialang.org/t/plotting-broken/29692/20 "2019-10-31T15:13:21Z")

</div>

I keep flogging this dead horse, but for non-command line users (like I am on most of my work machines where I can’t access `apm` commands through the command line), the re-install issue for julia-client can be solved through the Atom GUI, by just clicking “uninstall” and then two seconds later “install” in the packages menu.
