Skip to content

Planned work for 0.35.0 #200

Description

@michalsustr

I use this issue as a TODO scratchpad of things I want to focus on the most in near future (weeks), until next release 0.35.0. Most of it has a "sequential" nature to it, so if you'd like to contribute, definitely get in touch!

  • Refactor internals. E.g. there are lots of code in items/ which are not PlotItems. Reorganize it in a sensible way. Then there is also code like Legend, which should get a new special overlays/ treatment. I will try to not change public API (yet). Internal code cleanup #210 Internal code cleanup: values #211 Internal code cleanup: use, mod and cyclic deps resolution #212
    • In the library, there are two distinct things that should be cleanly separated: 1. PlotItem which are rendered on the plot "canvas" and 2. fixed-position UI overlays (such as legend). We are missing an OverlayItem trait.
  • Work on plot bounds, I don't really understand the logic well, it's confusing, and I'd like to also add new features, such as maximum dragging bounds. Fix no auto_bounds preventing pan/zoom/scroll #218 Add initial auto_bounds test for Plot #220
  • Plot bounds should allow closing bunch of opened issues and implement new interesting examples. In particular, I'd like to add a sin(x) demo with recalculated sampled points (markers), which are also stable while dragging. There is a sin(x) in the lines demo, but it's more "bolted on" PlotPoints and there is not much flexibility. For example, what if you wanted to sample points in non-linear way? Not possible now.
  • A more complex example that should be next possible is to make a Mandelbrot Viewer !
  • Add a colormap. There should be "anchor" colors specified by user, which will have gradient-like interpolation on unit interval. Then there should be mapping functions to/from this unit interval, that help to get current color. You should be able to specify colormap on a Figure. Introduce colormaps #188
  • I would like to close all open PRs.

Finally, either a) release a new version, or b) do the public API refactor, and release new version.

Public API refactor:

Lots of things are called in a weird way. Lots of things are called PlotXYZ where XYZ is some generic name, and is inconsistent with other plotting librarires like matplotlib / ggplot. I would like to make steps towards unification of that. This will break everyone's code, so ideally I want to do it all at once, to make a more future-proof stable API.

Things that should be possible after refactor:

  • Additional disabling / removal of plot items/overlays. This would be nice for the demo and interactive buttons. Now the buttons are swamped with the legend overlay, and I do not want to plumb in some "is a preview" special logic, as it would make the demo example codes a lot more complicated. Live previews in demo gallery #205

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions