Title: [MNT]: Refactor kwargs of Tick constructor · Issue #26008 · matplotlib/matplotlib · GitHub
Open Graph Title: [MNT]: Refactor kwargs of Tick constructor · Issue #26008 · matplotlib/matplotlib
X Title: [MNT]: Refactor kwargs of Tick constructor · Issue #26008 · matplotlib/matplotlib
Description: Summary Currently, the Tick constructor smashes together kwargs specific to it, kwargs for the tickmarkers, for the labels, and for the gridline: def __init__( self, axes, loc, *, # global size=None, # tickmarker property width=None, # t...
Open Graph Description: Summary Currently, the Tick constructor smashes together kwargs specific to it, kwargs for the tickmarkers, for the labels, and for the gridline: def __init__( self, axes, loc, *, # global size=Non...
X Description: Summary Currently, the Tick constructor smashes together kwargs specific to it, kwargs for the tickmarkers, for the labels, and for the gridline: def __init__( self, axes, loc, *, # global size=Non...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/26008
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[MNT]: Refactor kwargs of Tick constructor ","articleBody":"### Summary\r\n\r\nCurrently, the Tick constructor smashes together kwargs specific to it, kwargs for the tickmarkers, for the labels, and for the gridline:\r\n```python\r\n def __init__(\r\n self, axes, loc, *, # global\r\n size=None, # tickmarker property\r\n width=None, # tickmarker property\r\n color=None, # global\r\n tickdir=None, # tickmarker (not a property)\r\n pad=None, # global\r\n labelsize=None, # label property\r\n labelcolor=None, # label property\r\n labelfontfamily=None, # label property\r\n zorder=None, # global\r\n gridOn=None, # gridline (property: ~visible)\r\n tick1On=True, # tick (property, but specific to each tick)\r\n tick2On=True, # tick (property, but specific to each tick)\r\n label1On=True, # label (property, but specific to each label)\r\n label2On=False, # label (property, but specific to each label)\r\n major=True, # global\r\n labelrotation=0, # label property\r\n grid_color=None, # grid property\r\n grid_linestyle=None, # grid property\r\n grid_linewidth=None, # grid property\r\n grid_alpha=None, # grid property\r\n **kwargs, # grid properties\r\n ):\r\n```\r\nThe remaining kwargs are implicitly assumed to all start with \"grid_\" and further interpreted as grid properties (via `grid_kw = {k[5:]: v for k, v in kwargs.items()}`) -- note that this prefix is internally added by `Axis.grid()` to kwargs passed to it.\r\n\r\n### Proposed fix\r\n\r\nWe should at least check whether remaining kwargs indeed start with \"grid_\" and error out if that's not the case (Probably few people actually manually construct Ticks, but Tick(abcdecolor=\"k\")) should certainly not be interpreted as Tick(grid_color=\"k\") anyways.)\r\n\r\nIt may make sense to try to group the kwargs a bit more and not try to repeat all relevant properties in the Tick constructor, e.g. (not writing out the defaults)\r\n```python\r\ndef __init__(\r\n self, axes, loc, *,\r\n major, tickdir, pad, color, zorder, # global\r\n tick_props, tick1On, tick2On, # tick properties\r\n label_props, label1On, label2On, # label properties\r\n grid_props, # grid properties\r\n):\r\n```\r\n(probably kwargs could be normalized in this form as soon as one populates Axis._major_tick_kw/_minor_tick_kw)\r\n\r\nInspired by #25910.","author":{"url":"https://github.com/anntzer","@type":"Person","name":"anntzer"},"datePublished":"2023-05-30T09:26:53.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":9},"url":"https://github.com/26008/matplotlib/issues/26008"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:2cb0d336-806e-5731-ff55-931dbf752d9d |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A140:3280E7:1A014F5:228EB94:6A5449FC |
| html-safe-nonce | 6fb31d1ef7439395ccfce3e4e5d7d0467f4eb70af5c05b732b6c67dc7bd97a50 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMTQwOjMyODBFNzoxQTAxNEY1OjIyOEVCOTQ6NkE1NDQ5RkMiLCJ2aXNpdG9yX2lkIjoiMjMxNjI2NjExMDY0NTk3OTY0NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | fa7adc3fff0ed0761dca3e451925331a34414c3b1b0f12fc7ad716fc7bc4ac9a |
| hovercard-subject-tag | issue:1731875131 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/26008/issue_layout |
| twitter:image | https://opengraph.githubassets.com/a6bfc19582dc4657c2ffcba420d769149d94798403933328bff505a228659d28/matplotlib/matplotlib/issues/26008 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/a6bfc19582dc4657c2ffcba420d769149d94798403933328bff505a228659d28/matplotlib/matplotlib/issues/26008 |
| og:image:alt | Summary Currently, the Tick constructor smashes together kwargs specific to it, kwargs for the tickmarkers, for the labels, and for the gridline: def __init__( self, axes, loc, *, # global size=Non... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | anntzer |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| go-import | github.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git |
| octolytics-dimension-user_id | 215947 |
| octolytics-dimension-user_login | matplotlib |
| octolytics-dimension-repository_id | 1385122 |
| octolytics-dimension-repository_nwo | matplotlib/matplotlib |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1385122 |
| octolytics-dimension-repository_network_root_nwo | matplotlib/matplotlib |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 07a982c1d40157c619b364352b704c3ce66bb332 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width