# Plots.jl but for GUI

**URL:** <https://discourse.julialang.org/t/plots-jl-but-for-gui/5905>\
**Category:** Internals & Design\
**Tags:** proposal\
**Created:** [September 15, 2017, 11:44am UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905 "2017-09-15T11:44:50Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [September 15, 2017, 11:44am UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/1 "2017-09-15T11:44:50Z")

</div>

`Plots.jl` is awesome because it made plotting simpler while retaining most of the ability to configure stuff. Wouldn’t it be great if there was a similar meta-package that does what `Plots.jl` does for plotting, but for GUIs?  
Pinging @tbreloff on this one…

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [September 15, 2017, 1:59pm UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/2 "2017-09-15T13:59:48Z")

</div>

I’d love to be able to draw curves with a mouse. As far as I can tell, I’d have to do everything from scratch with the current packages.

---

<div class="post-metadata">

**Author:** ![jonathanBieler](https://avatars.discourse-cdn.com/v4/letter/j/82dd89/32.png) [@jonathanBieler](https://discourse.julialang.org/u/jonathanBieler)\
**Post date:** [September 15, 2017, 3:48pm UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/3 "2017-09-15T15:48:21Z")

</div>

Immerse draws line on top of the figure with the lasso selection, it doesn’t look too compicated.

[https://github.com/JuliaGraphics/Immerse.jl/blob/c11ceb745e68f3d0df33475847627b082da6004f/src/select.jl](https://github.com/JuliaGraphics/Immerse.jl/blob/c11ceb745e68f3d0df33475847627b082da6004f/src/select.jl)

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [September 15, 2017, 6:08pm UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/4 "2017-09-15T18:08:45Z")

</div>

there is a simple drawing example in glvisualize:

[https://github.com/JuliaGL/GLVisualize.jl/blob/master/examples/plots/drawing.jl](https://github.com/JuliaGL/GLVisualize.jl/blob/master/examples/plots/drawing.jl)

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [September 15, 2017, 6:15pm UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/5 "2017-09-15T18:15:38Z")

</div>

I think we just need a high-level API on top of Qt to be able to design simple GUIs quickly.

However, I am more interested in having a powerful package for creating web apps. This is the future in my opinion. You develop your Julia packages for solving problems in your field, wrap them on a nice web interface, and deliver a robust product that runs on the cloud (in parallel on multiple nodes) without the need for installation at all. Many businesses would come out of this approach with Julia frameworks that already exist.

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [September 15, 2017, 6:34pm UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/6 "2017-09-15T18:34:56Z")

</div>

I can’t agree more. I’ve been pushing for something like that for a while:

> [@Simple web app](https://discourse.julialang.org/t/simple-web-app/2578):
>
> I want to build a simple web app that allows the user to control a few variables (maybe from a slider?) updating a graph from a web browser. Escher is ideal but not an option for Julia v0.5 [(see issue 199)](https://github.com/shashi/Escher.jl/issues/199). Do you guys know of any other simple way I can do this? Maybe something in Python? I’m looking for something really bare-bones and easy, something similar to Escher that hides all the ugliness. Thanks in advance!

> [@Hosting Web Apps in Julia](https://discourse.julialang.org/t/hosting-web-apps-in-julia/1063/50):
>
> This is really good. Thank you. I’d like however to add one perspective I suspect a lot of non-technical people would share: Being able to build a webapp for your package is a very attractive feature. It would be very useful to have some bare-bones, ultra simple, dumbed-down tutorial that includes some but not all of the components from this project. Maybe a simple sin plot with some input from the user? My point is that there are scores of scientists that built some cool package they’d like …

> [@Catering for non-coders](https://discourse.julialang.org/t/catering-for-non-coders/2674/4):
>
> You are right about the scarcity of widely used research-related webapps. There aren’t many (if any). But the reason to publish one’s work as a webapp is not because it’ll be super popular or even useful to tons of people. The reason is that it’s one of the (potentially) easiest ways to grant people from group #1 access to your work. Again, the main crowd that would use the app is composed of researchers that want access to the functionality of your code. They don’t know how to code or even use…

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [September 15, 2017, 7:01pm UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/7 "2017-09-15T19:01:26Z")

</div>

I think a good Plots.jl-like package would be able to handle both QT and web-app just as different backends.

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [September 15, 2017, 7:24pm UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/8 "2017-09-15T19:24:34Z")

</div>

Drolling…

---

<div class="post-metadata">

**Author:** ![mlhetland](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mlhetland/32/283_2.png) [@mlhetland](https://discourse.julialang.org/u/mlhetland)\
**Post date:** [September 16, 2017, 8:08pm UTC](https://discourse.julialang.org/t/plots-jl-but-for-gui/5905/9 "2017-09-16T20:08:17Z")

</div>

Reminds me of an ooold project of mine (though certainly not mine alone):

[http://anygui.sourceforge.net](http://anygui.sourceforge.net)

The exact same goals, but for Python. Quite primitive, but I guess it demonstrates some level of feasibility. Not the same as saying this is a useful path to follow, of course.

Edit: No obvious dates on the website, but the last release is from 2002, it seems.
