-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Performance regression in lineplot
with ci=None
(or errorbar=None
)
#3006
Comments
lineplot
with ci=None
(or errorbar=None
)
I can reproduce the perf regression here but I don't think the issue is the
But if I do
So my guess is that the new implementation is evaluating the estimator function for each unique We should try to address the performance regression, but I think you want to put |
学习中! |
@mwaskom , thank you for the suggestion! |
Some insight from profiling: Nearly all of the time spent in
And then within that method, most of the time is actually spent ... wrapping the outputs in a pandas
I think the solution here is just to check whether any aggregation will happen and skip this entire step if it won't. That's implemented in #3081. There are probably still some edge cases here ... e.g. if you have many unique |
Hello,
I have noticed that seaborn-0.12.0 takes much more time (see the numbers below) to create a
lineplot
without error bars than seaborn-0.11.2 used to.The following code snippet demonstrates the problem:
Measuring the runtime using seaborn-0.11.2 one gets:
But with seaborn-0.12.0:
Note: replacing
ci=None
witherrorbar=None
has no impact in the performance of seaborn-0.12.0 (and obviouslyerrorbar
is not a valid keyword parameter in seaborn-0.11.2).After inspecting the code, it seems to me that even if
ci=None
is set (orerrorbar=None
) in version 0.12.0, some kind of error bars are computed and that has a huge impact in the performance when the plot has many point. In a real case plot, the runtime to produce it was around one hour, almost 100 times more that it used to be with seaborn-0.11.2I'm using CPython-3.9.13 and matplotlib-3.5.1
My only solution for now is to pin
seaborn==0.11.2
Is this a real bug? Or am I doing/understanding something wrong?
The text was updated successfully, but these errors were encountered: