Plots.jl: v0.7.0

Created on 19 May 2016  Â·  9Comments  Â·  Source: JuliaPlots/Plots.jl

This is the meta-tracker issue for the "Plots 2.0" that I've been working on. I've tagged 0.6.2 (see NEWS.md) and removed the tb_recipes branch. The dev branch is now tracking the new code. Anyone working on backends should do their best to start to support the dev branch, leaving 0.6 in the dust. (I'll try to put together details so you're not totally lost). If you have any unfinished/unmerged work, please rebase onto dev before submitting a PR.

Key things to get working:

  • [x] Make tests pass
  • [x] Ensure layout sizing is calculated and propogated properly
  • [x] Add tests for missing functionality

    • [x] shapes

    • [x] boxplots/violin

    • [x] discrete axes

    • [x] heatmaps

    • [x] images

    • [x] layouts

  • [x] Simplify backend interface and update template
  • [x] Add recipes to replace "hacks" in the code

    • [x] bar

    • [x] hist

    • [x] sticks

    • [x] line

    • [x] image

    • [x] hist2d

    • [x] steppre

    • [x] steppost

    • [x] hline

    • [x] vline

    • [x] density

  • [x] Get backends up to speed

    • [x] PyPlot

    • [x] GR

    • [x] Plotly

    • [x] PlotlyJS

    • [x] UnicodePlots

    • [x] PGFPlots

  • [ ] Support 0.5 and add 0.5 testing to travis
  • [x] method to build Plot from existing Plot objects
  • [x] @series macro inside RecipesBase
  • [x] @plottype macro for generating convenience methods. see https://github.com/tbreloff/Plots.jl/issues/254#issuecomment-218791022
  • [x] Axis linking (thinking: link = (:x | :y | :both | :all), where linking is done over rows/columns, except :all which links all subplots to the same Axis objects
  • [x] allow making subplot layout from recipes... need to move backend object construction between user recipes and series recipes

Known bugs:

  • [x] example 2: set/get/push/append
  • [x] example 4/10/22: colorbar isn't part of layout
  • [x] example 5: unknown key: xaxis
  • example 6: unknown key: axis (this is a breaking change... removed support for right-axis until a more general solution is ready)
  • [x] example 13: lims
  • [x] example 19: need OHLC recipe
  • [x] example 20: annotations
  • [x] example 21: lims
  • [x] example 23: pie chart labels
  • [x] example 24/27: axis projection
  • [x] example 25: unnecessary warning for xlabel/ylabel

Most helpful comment

I'm mostly done with the last major hurdle for 0.7... linked axes:

tmp

The keyword link takes values :none, :x, :y, :both, :all. They should be self-explanatory... note that :all is good for those cases where the layout isn't meaningful, but you have a lot of variables that you want to compare apples to apples.

All 9 comments

just for clarification: What is the julia version you are targeting? Full v0.4 support is clear, but v0.5 is still moving.

I thought it was clear from the subject that I'm targeting julia 0.7! But
seriously... I'd like to support 0.4 and 0.5. I haven't personally switched
to 0.5 yet as I was waiting for the dust to settle on some of the major
changes, but I want to switch soon. There's still a bunch of fixing-up
unrelated to the julia version that I want to focus on, and then
I'll ensure compatibility. If you have any quick/easy fixes for 0.5, I'm
happy to have PRs to the dev branch, or you could even just mention it on
gitter.

On Friday, May 20, 2016, Andreas Lobinger [email protected] wrote:

just for clarification: What is the julia version you are targeting? Full
v0.4 support is clear, but v0.5 is still moving.

—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/tbreloff/Plots.jl/issues/268#issuecomment-220561321

Update: really great progress here! I just generated the examples for the pyplot backend using the new codebase (with a couple extra examples): http://plots.readthedocs.io/en/latest/examples/pyplot/

The backend API is totally new and simplified. The template.jl file is mostly updated for those that are working on backends. I'll probably start to convert Plotly/PlotlyJS next, then probably I'll work with @jheinen to get GR ready.

I'll continue to update the first comment with the todo list.

I'm mostly done with the last major hurdle for 0.7... linked axes:

tmp

The keyword link takes values :none, :x, :y, :both, :all. They should be self-explanatory... note that :all is good for those cases where the layout isn't meaningful, but you have a lot of variables that you want to compare apples to apples.

Love the new layout engine so much it hurts me.
Using it I found an output that I am not sure is a bug, versus a perverse way of using the api.

If I do:

x = linspace(0, 2Ï€, 100)
y = sin(x)
plot(x, [y 2*y 10*y], layout=GridLayout(3, 1))

everything is sweet and aligned but if instead I do

x = linspace(0, 2Ï€, 100)
y = sin(x)
p1 = plot(x, y)
p2 = plot(x, 2*y)
p3 = plot(x, 10*y)
plot(p1, p2, p3, layout=GridLayout(3, 1))

then the left axes are not aligned. Is this a bug? Or is there a different way to combine plots into a layout?

The "plotting existing plots" feature is brand new so I wouldn't be
surprised if there's bugs. I'll take a look. Could you open an issue with a
screenshot and code I can copy/paste? Best way to ensure I get to it...

On Saturday, May 28, 2016, Gabriel [email protected] wrote:

Love the new layout engine so much it hurts me.
Using it I found an output that I am not sure is a bug, versus a perverse
way of using the api.

If I do:

x = linspace(0, 2Ï€, 100)
y = sin(x)
plot(x, [y 2_y 10_y], layout=GridLayout(3, 1))

everything is sweet and aligned but if instead I do

x = linspace(0, 2Ï€, 100)
y = sin(x)
p1 = plot(x, y)
p2 = plot(x, 2_y)
p3 = plot(x, 10_y)
plot(p1, p2, p3, layout=GridLayout(3, 1))

then the left axes are not aligned. Is this a bug? Or is there a different
way to combine plots into a layout?

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tbreloff/Plots.jl/issues/268#issuecomment-222329624,
or mute the thread
https://github.com/notifications/unsubscribe/AA492s7WNsmJHxhR80nYbnWHZV9zRvFRks5qGK3agaJpZM4Iie9E
.

Done.

Is it valuable to get this kind of feedback for the dev branch or is not useful as so much is changing?

Also is there a good way to ask questions about the code? I am trying to get myself up to speed to do some pull requests against some of the "easy" labelled issues, but want to make sure I understand some code structure stuff. Again if this is not super useful at this time I am happy to keep the noise to a minimum :)

Gitter is the best venue for one-off questions. I'll be improving the docs
in the next couple of weeks though. Feedback is very helpful, and complete
issues with code and images (just like the issue you just filed) are the
best thing to ensure I solve the problem.

On Saturday, May 28, 2016, Gabriel [email protected] wrote:

Done.

Is it valuable to get this kind of feedback for the dev branch or is not
useful as so much is changing?

Also is there a good way to ask questions about the code? I am trying to
get myself up to speed to do some pull requests against some of the "easy"
labelled issues, but want to make sure I understand some code structure
stuff. Again if this is not super useful at this time I am happy to keep
the noise to a minimum :)

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tbreloff/Plots.jl/issues/268#issuecomment-222333988,
or mute the thread
https://github.com/notifications/unsubscribe/AA492vk1mNM_xTSKkMWfp9x-t8bW_oOcks5qGMwbgaJpZM4Iie9E
.

you should be able to :fireworks: an action (closing this issue) :clap: :+1: :pizza:

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cortner picture cortner  Â·  4Comments

crstnbr picture crstnbr  Â·  3Comments

jebej picture jebej  Â·  4Comments

nebuta picture nebuta  Â·  3Comments

Krastanov picture Krastanov  Â·  3Comments