Open benbogart opened 3 years ago
There is no "gam" method. By default smoothing uses "loess" (assuming you have scikit-misc installed) for fewer than 1000 points; the loess algorithm does not scale well. But if you really want it then you can use it with method="loess".
On Thu., Jul. 29, 2021, 1:01 a.m. Ben Bogart, @.***> wrote:
It looks like geom_smooth only supports up to 999 rows.
You can see below that when I increase the row count from 999 to 1000 I get a regression line rather than a smooth plot.
[image: Screen Shot 2021-07-28 at 5 47 50 PM] https://user-images.githubusercontent.com/29614010/127400619-c8b0c8dc-bc07-4f29-bb96-779a1a910fe7.png
[image: Screen Shot 2021-07-28 at 5 47 38 PM] https://user-images.githubusercontent.com/29614010/127400748-297edea0-16eb-4642-9c36-a267f330255e.png
I tried to specify method = 'gam' but I get the following error which seems to indicate that gam is not available.
PlotnineError: "Method should be one of ['lm', 'ols', 'wls', 'rlm', 'glm', 'gls', 'lowess', 'loess', 'mavg', 'gpr']"
Is adding gam to geom_smooth for smoothing more than 1000 lines on the roadmap? Is there another method to accomplish this?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/has2k1/plotnine/issues/522, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAF6QNIVQME6YRGI5OOUB4TT2B43XANCNFSM5BFGZIZA .
@has2k1 What do you mean by there is no "gam" method? I understand that gam is not implemented in plotnine but it is part of the tidyvrse ggplot2.
From the docs
Smoothing method (function) to use, accepts either NULL or a character vector, e.g. "lm", "glm", "gam", "loess" or a function, e.g. MASS::rlm or mgcv::gam, stats::lm, or stats::loess. "auto" is also accepted for backwards compatibility. It is equivalent to NULL.
Is there a reason why gam is not available in plotnine? There are several python implementations including from statsmodels.
I only have 40k rows and tidyverse ggplot2 handles this with ease. In plotnine setting the method to "loess" kills my kernel.
It is not implemented in Plotnine. If there is an implementation in statsmodels then we can add it. If I recall right, gam in statsmodels was still in development only branch when I added the smoothing methods.
On Thu., Jul. 29, 2021, 11:48 p.m. Ben Bogart, @.***> wrote:
@has2k1 https://github.com/has2k1 What do you mean by there is no "gam" method? I understand that gam is not implemented in plotnine but it is part of the tidyvrse ggplot2.
From the docs https://ggplot2.tidyverse.org/reference/geom_smooth.html
Smoothing method (function) to use, accepts either NULL or a character vector, e.g. "lm", "glm", "gam", "loess" or a function, e.g. MASS::rlm or mgcv::gam, stats::lm, or stats::loess. "auto" is also accepted for backwards compatibility. It is equivalent to NULL.
Is there a reason why gam is not available in plotnine? There are several python implementations including from statsmodels.
I only have 40k rows and tidyverse ggplot2 handles this with ease. In plotnine setting the method to "loess" kills my kernel.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/has2k1/plotnine/issues/522#issuecomment-889444770, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAF6QNKZJB2YA6JUPQGUBXTT2G5AFANCNFSM5BFGZIZA .
That makes sense.
Gam does appear to be implemented in statsmodels now: https://www.statsmodels.org/v0.12.2/gam.html
It would be great to have.
It looks like geom_smooth only supports up to 999 rows.
You can see below that when I increase the row count from 999 to 1000 I get a regression line rather than a smooth plot.
I tried to specify
method = 'gam'
but I get the following error which seems to indicate that gam is not available.Is adding gam to geom_smooth for smoothing more than 1000 lines on the roadmap? Is there another method to accomplish this?