|
13 | 13 |
|
14 | 14 | ## Notes |
15 | 15 |
|
16 | | -### MEP about MEP? ** @Thomas C will do book keeping tasks** |
| 16 | +### MEP about MEP? ** @tacaswell will do book keeping tasks** |
17 | 17 |
|
18 | 18 | - When to write a MEP? |
19 | 19 | - proposing controversial features, |
|
34 | 34 | 1. do a small PR that adds your MEP to the master list (in https://matplotlib.org/devdocs/devel/MEP/index.html), |
35 | 35 | 2. have another PR with the actual discussion. Helps avoiding conflicting numbers. |
36 | 36 |
|
37 | | -**Need text/followup from** @Thomas C **on** |
| 37 | +**Need text/followup from** @tacaswell **on** |
38 | 38 |
|
39 | 39 | - [x] summer student |
40 | 40 | - [x] documentation summit |
41 | 41 |
|
42 | 42 |
|
43 | | -### Tick Refactor ** @Tim H ** |
| 43 | +### Tick Refactor ** @timhoffm ** |
44 | 44 |
|
45 | 45 | - target 3.1 |
46 | 46 | - MEP? |
|
54 | 54 | - public api that predates __ convention |
55 | 55 | - are ticks markers or line collections or something else? |
56 | 56 | - gridlines are line collections/single broken line |
57 | | - - @Antony L sketch: https://github.com/anntzer/matplotlib/tree/_wip/newaxis |
| 57 | + - @anntzer sketch: https://github.com/anntzer/matplotlib/tree/_wip/newaxis |
58 | 58 | - how does it work with projections? |
59 | 59 | - straight line in proj space or data space |
60 | 60 | - rader plots wants straight |
|
70 | 70 |
|
71 | 71 | - text rendering may be slow because of rasterization of individual glyphs, but should be profiled |
72 | 72 | - might be good for completeness/API reasons |
73 | | -- @Ryan M scattertext WIP: https://github.com/matplotlib/matplotlib/pull/4063 |
| 73 | +- @dopplershift scattertext WIP: https://github.com/matplotlib/matplotlib/pull/4063 |
74 | 74 | - needs colormapping |
75 | 75 | - marker, patch and polycollection |
76 | 76 | - marker codepath/ in draw path: |
|
85 | 85 |
|
86 | 86 | # April 9, 2018 |
87 | 87 |
|
88 | | -@Ryan M , @Jody K @Eric F @Thomas C , @hannah a |
| 88 | +@dopplershift @jklymak @efiring @tacaswell @story645 |
89 | 89 |
|
90 | 90 |
|
91 | 91 | - [x] inset_axes and extra_spine_x/extra_spine_y into main library. |
|
101 | 101 |
|
102 | 102 | ### Inset_axes/spine tick stuff |
103 | 103 |
|
104 | | -- @Eric F spend time over the weekend reading through how tick code actually works and took notes. |
105 | | -- @Jody K Currently we don’t have a notion of ‘nested’ axes, but that it would make sense to have ‘child’ axes that is follows the parent. Thinking of these following axes an decorations on the parent axes (like legend) |
106 | | -- @Eric F summary of history of axes_grid and friends |
| 104 | +- @efiring spend time over the weekend reading through how tick code actually works and took notes. |
| 105 | +- @jklymak Currently we don’t have a notion of ‘nested’ axes, but that it would make sense to have ‘child’ axes that is follows the parent. Thinking of these following axes an decorations on the parent axes (like legend) |
| 106 | +- @efiring summary of history of axes_grid and friends |
107 | 107 | - discussion of what parts of axes_grid we can move up into the ‘mainline’ of the codebase |
108 | | -- @Eric F - refactor and better document code to reduce technical debt? |
109 | | -- @Eric F Cleaning up current ticker might be worth doing before we do whole-sale re-write |
110 | | -- @Eric F suggests that we accept more breakage of edge-case APIs for improved consistency, |
| 108 | +- @efiring - refactor and better document code to reduce technical debt? |
| 109 | +- @efiring Cleaning up current ticker might be worth doing before we do whole-sale re-write |
| 110 | +- @efiring suggests that we accept more breakage of edge-case APIs for improved consistency, |
111 | 111 | - trade off: replacing more complex with simpler 👍 , complex with complex 👎 |
112 | | -- @Thomas C sold on: |
| 112 | +- @tacaswell sold on: |
113 | 113 | - axes_inset as children of parent axes |
114 | 114 | - more thought on axis children objects |
115 | 115 | - different x spine/multiple x spines |
|
131 | 131 | - add tutorial section for developers |
132 | 132 | - https://github.com/matplotlib/matplotlib/pull/10947 |
133 | 133 | - Notes in progress? |
134 | | - - @Antony L suggested the wiki |
| 134 | + - @anntzer suggested the wiki |
135 | 135 | - **Consensus** https://github.com/orgs/matplotlib/teams/developers |
136 | 136 |
|
137 | 137 | ### Perez: |
|
142 | 142 |
|
143 | 143 | - Find out who has push on it |
144 | 144 | - using it to standardize workflow across communities |
145 | | -- @Antony L suggesting we just link to central gitwash instead of bothering with templating |
146 | | -- @Tim H https://github.com/matplotlib/matplotlib/pull/10997 |
| 145 | +- @anntzer suggesting we just link to central gitwash instead of bothering with templating |
| 146 | +- @timhoffm https://github.com/matplotlib/matplotlib/pull/10997 |
147 | 147 |
|
148 | 148 | ### Mailing list: |
149 | 149 |
|
150 | | -- @Jody K suggest automatic reply on rejected posts saying you have to join to post to the list |
| 150 | +- @jklymak suggest automatic reply on rejected posts saying you have to join to post to the list |
151 | 151 |
|
152 | 152 | ### Tool manager: |
153 | 153 |
|
154 | 154 | - https://github.com/matplotlib/matplotlib/pull/9022 |
155 | | -- @Antony L - good idea but ToolBarManager should be moved out of core |
156 | | -- @Thomas C can’t be moved out ‘cause too coupled with GUI backends |
157 | | -- @Jody K why ToolBarManager? |
158 | | - - @Thomas C makes toolbar modular -can just add buttons for things like zoom and lasso |
159 | | - - @Antony L adding buttons using homebuilt widget system → tool bar manager → write full blown QT GUI |
160 | | - - @Antony L wants to know if it will be the full blown default or another axis_grid |
| 155 | +- @anntzer - good idea but ToolBarManager should be moved out of core |
| 156 | +- @tacaswell can’t be moved out ‘cause too coupled with GUI backends |
| 157 | +- @jklymak why ToolBarManager? |
| 158 | + - @tacaswell makes toolbar modular -can just add buttons for things like zoom and lasso |
| 159 | + - @anntzer adding buttons using homebuilt widget system → tool bar manager → write full blown QT GUI |
| 160 | + - @anntzer wants to know if it will be the full blown default or another axis_grid |
161 | 161 | - backends: everything except WX (which is in PR) |
162 | 162 | - goal for 3, default in 3.1 |
163 | 163 |
|
164 | 164 | --- |
165 | 165 |
|
166 | 166 | # April 16, 2018 |
167 | 167 |
|
168 | | -@Eric F, @Ryan M, @Thomas C, @hannah a, @Antony L |
| 168 | +@efiring, @dopplershift, @tacaswell, @story645, @anntzer |
169 | 169 |
|
170 | 170 | - Documentation Summit: Who wants to come? (And where are you located?) |
171 | 171 | - PRs: |
|
177 | 177 |
|
178 | 178 | - imshow Python refactor: |
179 | 179 | - agg interpolation |
180 | | -- 11027 - @Thomas C |
| 180 | +- 11027 - @tacaswell |
181 | 181 | - Add one more dial to automatic spacing based on font size |
182 | 182 | - assuming x axis tick labels are wider than y axis - more ticks on y than x |
183 | 183 | - wants algorithm to factor in when x is smaller - dynamic guessing of xtick size |
184 | 184 | - adding unnecessary? complexity |
185 | | - - @Ryan M - subclass locator, make it first class citizen in library |
186 | | - - @Antony L monkey patch axis api: |
| 185 | + - @dopplershift - subclass locator, make it first class citizen in library |
| 186 | + - @anntzer monkey patch axis api: |
187 | 187 | - add public API to replace methods |
188 | 188 | - tell user to subclass locator - have subclassing API |
189 | 189 | - set default axes for axis |
190 | | - - @Eric F generalize API to accomplish same by making two new parameters: |
| 190 | + - @efiring generalize API to accomplish same by making two new parameters: |
191 | 191 | - x tick label size/ y tick label size - access to these properties |
192 | 192 | - trying to estimate how large tick will be in axis dimension (based on character width and height, not fontsize) |
193 | 193 | - Public API change to locator: |
|
198 | 198 | - fontsize in points |
199 | 199 | - locator can get axis object for axis names (x or y) |
200 | 200 | - need easy way to subclass locators instead of having to subclass axis |
201 | | -- 11048 - @Thomas C |
| 201 | +- 11048 - @tacaswell |
202 | 202 | - move bar grouping out of hist into its own thing so that it can be a shared private function |
203 | 203 | - add a plt.multibar/groupedbar to support multiple bars that can call bar underneath the hood |
204 | 204 | - can prune some of the features of bar: no bottom, no alignment, |
205 | 205 | - grouping - by variable (y) or by x(category) |
206 | 206 | - API design with no implementation first + how it’d be used by refactored hist |
207 | 207 | - follow plot and pandas semantics with respect to broadcasting x to y: each column is a dataseries/variable |
208 | 208 | - replace some of histograms logic with a call to multibar |
209 | | - - @Eric F create a hierarchy of how the plots build on top of each other |
| 209 | + - @efiring create a hierarchy of how the plots build on top of each other |
210 | 210 | - bar charts x tick labels should probably be fixedlocator/fixedformatter by default |
211 | 211 | - 11055 |
212 | | - - @Antony L easy to restore, unclear what it does, doesn’t think it works |
213 | | - - @Ryan M conda-forge testing branch makes setup_cfg use the local freetype |
| 212 | + - @anntzer easy to restore, unclear what it does, doesn’t think it works |
| 213 | + - @dopplershift conda-forge testing branch makes setup_cfg use the local freetype |
214 | 214 | - use case: conda looks up listed packages, so you can run only the tests and install the test data, can check all the files that were installed and say “that’s my package” which is a test only package that only contains test results |
215 | 215 | - newer versions of conda build can generate multiple packages out of one recipe |
216 | 216 | - pitch it back to conda unless they ask about it? |
217 | 217 | - [+Documentation summit](https://paper.dropbox.com/doc/Documentation-summit-3HkbTDvrztZbmIm6wsC0B) |
218 | 218 | - Late Summer/Early Fall - 2-3 days |
219 | 219 | - Manning people want long form narrative explaining step by step |
220 | 220 | - thoughts |
221 | | - - @Eric F - summer is better than fall (mid august) |
222 | | - - @Antony L - intermediate level docs (step function in documentation) |
| 221 | + - @efiring - summer is better than fall (mid august) |
| 222 | + - @anntzer - intermediate level docs (step function in documentation) |
223 | 223 | - does this already exist? |
224 | | - - defining what is intermediate? - @Antony L what is Python? what is matplotlib? |
| 224 | + - defining what is intermediate? - @anntzer what is Python? what is matplotlib? |
225 | 225 | - https://mail.python.org/pipermail/matplotlib-devel/2018-March/001033.html |
226 | 226 |
|
227 | 227 | --- |
|
232 | 232 |
|
233 | 233 | ## Agenda: |
234 | 234 | - bbox issues: @jklymak: |
235 | | - `ax.get_tightbbox()` now includes legends as of #9164 (and #10682 proposes making it that way for *all* artists). But that is sometimes bad if the user has stuck the legend far from the axes (i.e. #11041). @ImportanceOfBeingEearnest brought up the idea of having a flag attached to an artist that says whether it should be part of get_tightbbox, so users can turn it on/off on an as-needed basis. |
| 235 | + `ax.get_tightbbox()` now includes legends as of #9164 (and #10682 proposes making it that way for *all* artists). But that is sometimes bad if the user has stuck the legend far from the axes (i.e. #11041). @ImportanceOfBeingErnest brought up the idea of having a flag attached to an artist that says whether it should be part of get_tightbbox, so users can turn it on/off on an as-needed basis. |
236 | 236 | - https://github.com/matplotlib/matplotlib/issues/9130, https://github.com/matplotlib/matplotlib/pull/9164, https://github.com/matplotlib/matplotlib/pull/10682, https://github.com/matplotlib/matplotlib/issues/11041 |
237 | 237 | - inset_axes API: |
238 | 238 | - https://github.com/matplotlib/matplotlib/pull/11026 |
|
249 | 249 | - used in tight and constraint layout |
250 | 250 | - artist property set to true by default, could be set to false by default |
251 | 251 | - should all artists be part of tight box? do we need method of exclusion? |
252 | | - - @Eric F flag is low barrier, but is there enough use case? |
| 252 | + - @efiring flag is low barrier, but is there enough use case? |
253 | 253 | - current: legend based on bbox_to_anchor argument against existing axes |
254 | 254 | - proposed exclusion methods: |
255 | 255 | - method on artist: legend.exclude for bbox |
256 | 256 | - kwarg to `constraint_layout`? |
257 | 257 | - alternatives for legends: |
258 | 258 | - attach legend to its own axes and use that bbox |
259 | | - - @use fig.legend + bbox transform |
260 | | -- @Jody K To Do: add exclusion flag |
261 | | -- @Eric F move automatic gathering of handles, labels into axes methods |
| 259 | + - use fig.legend + bbox transform |
| 260 | +- @jklymak To Do: add exclusion flag |
| 261 | +- @efiring move automatic gathering of handles, labels into axes methods |
262 | 262 | - do axes composition: axes.get_legend_entries in fig.axes |
263 | 263 | - feed sum(handles, labels) into fig.legend() |
264 | 264 |
|
265 | 265 | ### inset_axis |
266 | 266 |
|
267 | 267 | - child axes |
268 | | - - @Eric F want to preserve hierarchy/ composition |
269 | | - - @Jody K needed for tight_layout/constrained_layout |
| 268 | + - @efiring want to preserve hierarchy/ composition |
| 269 | + - @jklymak needed for tight_layout/constrained_layout |
270 | 270 | - tension w/ preserving axesgrid api: |
271 | 271 | - axesgrid is poorly documented |
272 | 272 | - multiple apis for add_inset: |
273 | 273 | - manual, specify the box for the inset axis |
274 | 274 | - loc based but needs height+width |
275 | 275 | - padding? |
276 | 276 | - handled w/ uniform shrink (like colorbar) |
277 | | - - pad in terms of physical units? @Jody K?? |
278 | | - - @Eric F : Start with simple api |
| 277 | + - pad in terms of physical units? @jklymak?? |
| 278 | + - @efiring : Start with simple api |
279 | 279 | - specify rectangle and transform |
280 | | - - @Jody K add_inset_rect + pad |
| 280 | + - @jklymak add_inset_rect + pad |
281 | 281 | - specify pad in physical units |
282 | 282 |
|
283 | 283 | ### API inconsistencies |
284 | 284 |
|
285 | | - - @Eric F: importance of being earnest mentions inconsistency between text (x, y, text) and annotate takes (text, (x,y)) |
| 285 | + - @efiring: importance of being earnest mentions inconsistency between text (x, y, text) and annotate takes (text, (x,y)) |
286 | 286 | - keep track of inconsistencies? |
287 | 287 | - shift to a more uniform standard? |
288 | 288 | - how to tabulate? |
|
298 | 298 |
|
299 | 299 | # April 30, 2018 |
300 | 300 |
|
301 | | -@Eric F @Jody K @Thomas C @paul h @hannah a |
| 301 | +@efiring @jklymak @tacaswell @phobson @story645 |
302 | 302 |
|
303 | 303 | ## Agenda: |
304 | 304 | - py3 transition: |
|
309 | 309 |
|
310 | 310 | PY3 transition. |
311 | 311 |
|
312 | | -- @Thomas C wants to stand by the backport criteria (critical bugs and regressions), other backports need a champion. |
| 312 | +- @tacaswell wants to stand by the backport criteria (critical bugs and regressions), other backports need a champion. |
313 | 313 | - 2.2.2 doc branch should only get changes to the .rst file, won’t see changes .py because of how docs are built |
314 | 314 |
|
315 | 315 | UpdateL bbox issues |
316 | 316 |
|
317 | 317 | - `artist.inbbox` flag - property on artist: |
318 | 318 | - when tight_layout does calculation, ignores everything set to False |
319 | 319 | - pro: explicit listing of elements in bbox |
320 | | - - con: @Eric F unintended consequences like possible performance issues? |
| 320 | + - con: @efiring unintended consequences like possible performance issues? |
321 | 321 | - does everything need to be explicitly white/blacklisted? |
322 | 322 | - goal for constraint layout to maybe be default? |
323 | 323 | - GUIs need to be resized and so on the fly layout |
324 | | - - @paul h suggests doing some benchmarks to see if performance is an issue |
325 | | - - @Thomas C what else could we use this flag for? semantic content of “I want this artist included in the bbox” - tight layout, constrained layout |
| 324 | + - @phobson suggests doing some benchmarks to see if performance is an issue |
| 325 | + - @tacaswell what else could we use this flag for? semantic content of “I want this artist included in the bbox” - tight layout, constrained layout |
326 | 326 | - sticky edge - when you change autoscaling to non-tight, but some artists need tight like imshow: |
327 | 327 | - draw circle on image, will recognize that image wants tight |
328 | 328 | - if circle>image, adds pad |
|
0 commit comments