September 2020

tags: 2020 dev call

Call co-ordinates: Mondays @ 15:00 Eastern US time (UTC -05:00) https://zoom.us/j/384435716

Previous notes: 2020 Meeting Agenda Archive: matplotlib/ProjectManagement

Needs discussion at some point

28 September 2020

Agenda:

Old business:

Issues

PRs

Notes:

Zoom

  • designate more hosts

Security Policy

Browsers:

  • ResizeObserver not implemented in FF69 until last year, in Chrome 3-4 y.
  • Extended support release:
    • do we need to support this?
    • not part of packaging system
    • how big is it?
    • would need to add a shim
      • if self contained, seems reasonable.
      • versus documenting incompatibility
    • suggest similar amount of time to python support: 3.5 y

Consistency of defaults capstyle and joinstyle

https://github.com/matplotlib/matplotlib/issues/18597

  • PathPatch and Line2D incompatible defaults
  • PathPatch hard coded. Line off rcParam. Add an rcParam?
  • arrows seem hard coded
    • does it need to be on universal default?
    • specific patches need specific @bruno: open issue on circle patch

date ticker factory:

Stair test fixes

  • change data: user must call relim()
  • can be useful.

Collections color logic

18573: axes_class

21 September 2020

Agenda

Governance

PRs:

Notes

Code of conduct

  • concern is that it is actionable
    • perceived as problematic to have to go through back-channels.
  • can be problematic
  • do we value it?
  • EDI kick? @dstansby
  • @jklymak: will move this forward
    • back up ombudsman
    • leah at NumFOCUS?
  • try and have under unmbrella

Small dev grant

  • small dev grant:
    • $5k if something useful we should propose

security email

PRs

  • subfigure is the name

  • shared axis:

    • sharing ticks and formatters are supposed to be the same
    • currently should both be shared
    • should just be set_xlim? rather than looping
  • pcolorfast,

    • should be faster than pcolormesh
    • but how much?
    • @anntzer will look at benchmarks and check that new all-numpy version is close to C version
  • Axes api discussion:

    • subfigure useful to allow libraries that have control of figures
    • decorator: global state versus non-global
    • explicit better than implicit generally
    • context manager?
    • agreed on call that this is an important project.
    • @tacaswell will put some cycles into moving this forward.
    if ax is None: 
        ax=plt.gca(); 

14 September 2020

Agenda

Notes

Pcolormesh handling

  • panning and zooming in non-cartesian coords
  • interpolation should be in data space, creates issues w/ 0-360 wrap
  • folks expect that pcolormesh works like imshow, except pcolormesh doesn't - needs to guess edges - creates issues in wrapped coordinate systems (globes!)
  • user can pass in boundaries
  • projection can provide function for doing wrapping on non-cartesian coords
    • this sorta exists as transform
    • is periodic boundary problem
    • not sure if there's a canonical way of doing
  • previously dropped data, would create piecewise linear condition that usually would follow circle
  • want lat/lon grid or projection informed nearest neighbor
  • two projections
    • native projection system for the axes
    • specificy alternate projection for plotting
  • original report:
    • stereopolar stored in lat lon (plattecarrer) that they wanted plotted in polarstereo - interpolation created jumps
  • cartopy side solution
    • cartopy heuristic is nan for missing 1/2 grid
    • they plan to develop algorithm that defaults over pcolormesh

to do

imshow roundtrip

  • value =/= inverse cmap(norm(v))
  • switched to interpolation in dataspace
  • agg clips hard at 0-1, so mpl internally resamples .25-.75 so rest can be mapped for over/under
  • log(100*10^20) doesn't work properly - clip transform eps to 1/20
  • problem restatement
    • input data < vmax
    • via interpolation gets rounded up >vmax
    • gets aggressively clipped
    • is now nan

proposals

  • special case log
    • clip to be >+0
  • 3.4 proposal: add an episilon to vmin/vmax
    • close over values (<vmax+epsilon) will get marked as valid
    • discrete boundary on the data
    • boundarynorm does this fuzzyness
    • moves around implementation details
    • concern about domain specific boundary values
  • current path:
    • resample (rescale/unscale - linear [0-1]) -> norm(rescale) -> colormap
  • rewrite interpolator
    • sort out the current implementation (agg implementation details) - walk through agg templates
    • for every point in kernal window, apply kernal to get interpolated point
    • still doing floating points, still mapping to integer (color mapping)
    • need to preserve input values- shouldn't happen in nearest 'cause interpolater shouldn't be doing math
    • resample & norm order are really scale/domain dependent

To Do

  • special case log
    • clip to be >+0
  • document resample/interpolation/rescaling path & floating point issues

mentored sprint

let @story645 know if you want to be involved

07 September 2020

Agenda

PRs and Issues

Notes

naming of "step"

  • primary goal to avoid user confusion
    • avoid collision with step -> no 'step' in name even though 'step' would be the best plot
  • checked what other names were already used in this context (google "<name> plot")
    • other names already have different usage
  • no one was strongly against
  • outstanding question: stair vs stairs
  • no one can think of ambigquity with 'stairs'
  • consenuss is that "stairs" scans better than "stair" even though most other plot name are singular because in spoken english "stairs" is a weird word.

seaborn wants a section on discourse

  • Sounds good!
  • @hannah will set it up

pydata theme

  • should we move to pydata theme?
    • maybe, but want to be able customize the colors (our colors are part of our branding)
  • this should also let us use the version selector
  • keep the cicle
  • change the font

small development grant for information architecture

  • needs a champion who has bandwidth to lead this