-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
PERF: improve plotting performance by not stringifying all x data #18373
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PERF: improve plotting performance by not stringifying all x data #18373
Conversation
Codecov Report
@@ Coverage Diff @@
## master #18373 +/- ##
==========================================
- Coverage 91.38% 91.36% -0.02%
==========================================
Files 164 164
Lines 49797 49800 +3
==========================================
- Hits 45508 45502 -6
- Misses 4289 4298 +9
Continue to review full report at Codecov.
|
Codecov Report
@@ Coverage Diff @@
## master #18373 +/- ##
==========================================
- Coverage 91.38% 91.34% -0.04%
==========================================
Files 164 164
Lines 49797 49721 -76
==========================================
- Hits 45508 45420 -88
- Misses 4289 4301 +12
Continue to review full report at Codecov.
|
lgtm. needs a whatsnew, prob ok for 0.21.1 |
is there an associated issue? |
Ah, yes, didn't see that one, but from the description this PR is exactly fixing that :-) |
@TomAugspurger any comments on the content of the PR? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
…ndas-dev#18373) * add benchmark with basic default plotting (cherry picked from commit 8d04daf)
Closes #18236
Currently when plotting all x / index data are converted to strings, while you typically only need a few tick labels. So when you have a lot of data, this cause the pandas plotter to be hugely slower than needed (and than a pure matplotlib one)
On master:
with this branch:
So for very simple plot when from 4s to ca 100ms (which is much closer to the pure matplotlib performance)