Skip to content

Planned work for 0.35.0 #200

@michalsustr

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions