plotnine 0.15.0a5__py3-none-any.whl → 0.15.0a7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. plotnine/_mpl/layout_manager/_engine.py +2 -2
  2. plotnine/_mpl/layout_manager/_layout_items.py +6 -2
  3. plotnine/_mpl/layout_manager/_layout_tree.py +221 -60
  4. plotnine/_mpl/layout_manager/_spaces.py +98 -28
  5. plotnine/_mpl/text.py +1 -7
  6. plotnine/_utils/__init__.py +13 -0
  7. plotnine/composition/__init__.py +11 -0
  8. plotnine/{plot_composition/_compose.py → composition/_arrange.py} +64 -119
  9. plotnine/composition/_beside.py +54 -0
  10. plotnine/composition/_plot_spacer.py +55 -0
  11. plotnine/composition/_stack.py +54 -0
  12. plotnine/geoms/geom_area.py +2 -2
  13. plotnine/geoms/geom_bar.py +1 -0
  14. plotnine/geoms/geom_bin_2d.py +6 -2
  15. plotnine/geoms/geom_boxplot.py +4 -0
  16. plotnine/geoms/geom_col.py +2 -2
  17. plotnine/geoms/geom_count.py +6 -2
  18. plotnine/geoms/geom_density_2d.py +6 -2
  19. plotnine/geoms/geom_dotplot.py +1 -1
  20. plotnine/geoms/geom_histogram.py +1 -1
  21. plotnine/geoms/geom_map.py +2 -2
  22. plotnine/geoms/geom_pointdensity.py +4 -0
  23. plotnine/geoms/geom_qq.py +4 -0
  24. plotnine/geoms/geom_qq_line.py +4 -0
  25. plotnine/geoms/geom_quantile.py +4 -0
  26. plotnine/geoms/geom_sina.py +3 -3
  27. plotnine/geoms/geom_smooth.py +4 -0
  28. plotnine/geoms/geom_violin.py +4 -0
  29. plotnine/ggplot.py +12 -26
  30. plotnine/scales/scale_manual.py +2 -0
  31. plotnine/stats/stat_bin.py +4 -0
  32. plotnine/stats/stat_bin_2d.py +4 -0
  33. plotnine/stats/stat_bindot.py +1 -0
  34. plotnine/stats/stat_boxplot.py +1 -1
  35. plotnine/stats/stat_count.py +1 -0
  36. plotnine/stats/stat_density.py +1 -1
  37. plotnine/stats/stat_density_2d.py +1 -0
  38. plotnine/stats/stat_ecdf.py +1 -1
  39. plotnine/stats/stat_ellipse.py +4 -0
  40. plotnine/stats/stat_function.py +4 -0
  41. plotnine/stats/stat_hull.py +4 -0
  42. plotnine/stats/stat_identity.py +4 -0
  43. plotnine/stats/stat_pointdensity.py +1 -0
  44. plotnine/stats/stat_qq.py +1 -0
  45. plotnine/stats/stat_qq_line.py +1 -0
  46. plotnine/stats/stat_quantile.py +1 -1
  47. plotnine/stats/stat_sina.py +1 -1
  48. plotnine/stats/stat_smooth.py +1 -0
  49. plotnine/stats/stat_sum.py +4 -0
  50. plotnine/stats/stat_summary.py +1 -1
  51. plotnine/stats/stat_summary_bin.py +1 -1
  52. plotnine/stats/stat_unique.py +4 -0
  53. plotnine/stats/stat_ydensity.py +1 -1
  54. plotnine/themes/elements/element_line.py +17 -9
  55. plotnine/themes/theme_void.py +1 -7
  56. plotnine/themes/themeable.py +24 -13
  57. {plotnine-0.15.0a5.dist-info → plotnine-0.15.0a7.dist-info}/METADATA +1 -1
  58. {plotnine-0.15.0a5.dist-info → plotnine-0.15.0a7.dist-info}/RECORD +62 -60
  59. plotnine/plot_composition/__init__.py +0 -10
  60. plotnine/plot_composition/_spacer.py +0 -32
  61. /plotnine/{plot_composition → composition}/_plotspec.py +0 -0
  62. {plotnine-0.15.0a5.dist-info → plotnine-0.15.0a7.dist-info}/WHEEL +0 -0
  63. {plotnine-0.15.0a5.dist-info → plotnine-0.15.0a7.dist-info}/licenses/LICENSE +0 -0
  64. {plotnine-0.15.0a5.dist-info → plotnine-0.15.0a7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,55 @@
1
+ from __future__ import annotations
2
+
3
+ from copy import deepcopy
4
+
5
+ from plotnine import element_rect, ggplot, theme, theme_void
6
+
7
+
8
+ class plot_spacer(ggplot):
9
+ """
10
+ Blank area as wide or as tall as a plot
11
+
12
+ Parameters
13
+ ----------
14
+ fill :
15
+ Background color. The default is a transparent area, but it
16
+ can be changed through this parameter.
17
+
18
+ The color can also be modified by adding a [](`~plotnine.theme`)
19
+ and setting the [](`~plotnine.themes.themeable.plot_background`).
20
+
21
+ See Also
22
+ --------
23
+ plotnine.composition.Beside : To arrange plots side by side
24
+ plotnine.composition.Stack : To arrange plots vertically
25
+ plotnine.composition.Arrange : For more on arranging plots
26
+ """
27
+
28
+ def __init__(
29
+ self,
30
+ fill: (
31
+ str
32
+ | tuple[float, float, float]
33
+ | tuple[float, float, float, float]
34
+ | None
35
+ ) = None,
36
+ ):
37
+ super().__init__()
38
+ self.theme = theme_void()
39
+ if fill:
40
+ self.theme += theme(plot_background=element_rect(fill=fill))
41
+
42
+ def __add__(self, rhs) -> plot_spacer:
43
+ """
44
+ Add to spacer
45
+
46
+ All added objects are no ops except the `plot_background` in
47
+ in a theme.
48
+ """
49
+ self = deepcopy(self)
50
+ if isinstance(rhs, theme):
51
+ fill = rhs.getp(("plot_background", "facecolor"))
52
+ self.theme += theme(
53
+ plot_background=element_rect(fill=fill),
54
+ )
55
+ return self
@@ -0,0 +1,54 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass
4
+ from typing import TYPE_CHECKING
5
+
6
+ from ._arrange import Arrange
7
+
8
+ if TYPE_CHECKING:
9
+ from plotnine.ggplot import ggplot
10
+
11
+
12
+ @dataclass
13
+ class Stack(Arrange):
14
+ """
15
+ Place plots or compositions on top of each other
16
+
17
+ **Usage**
18
+
19
+ plot / plot
20
+ plot / composition
21
+ composition / plot
22
+ composition / composition
23
+
24
+ Typically, you will use this class through the `/` operator.
25
+
26
+ See Also
27
+ --------
28
+ plotnine.composition.Beside : To arrange plots side by side
29
+ plotnine.composition.plot_spacer : To add a blank space between plots
30
+ """
31
+
32
+ @property
33
+ def nrow(self) -> int:
34
+ return len(self)
35
+
36
+ @property
37
+ def ncol(self) -> int:
38
+ return 1
39
+
40
+ def __truediv__(self, rhs: ggplot | Arrange) -> Arrange:
41
+ """
42
+ Add rhs as a row
43
+ """
44
+ # This is an adjacent div i.e. (DIV | rhs) so we collapse the
45
+ # operands into a single operation
46
+ return Stack([*self, rhs])
47
+
48
+ def __or__(self, rhs: ggplot | Arrange) -> Arrange:
49
+ """
50
+ Add rhs as a column
51
+ """
52
+ from ._beside import Beside
53
+
54
+ return Beside([self, rhs])
@@ -14,12 +14,12 @@ class geom_area(geom_ribbon):
14
14
  """
15
15
  Area plot
16
16
 
17
+ {usage}
18
+
17
19
  An area plot is a special case of geom_ribbon,
18
20
  where the minimum of the range is fixed to 0,
19
21
  and the position adjustment defaults to 'stack'.
20
22
 
21
- {usage}
22
-
23
23
  Parameters
24
24
  ----------
25
25
  {common_parameters}
@@ -32,6 +32,7 @@ class geom_bar(geom_rect):
32
32
  See Also
33
33
  --------
34
34
  plotnine.geom_histogram
35
+ plotnine.stat_count : The default `stat` for this `geom`.
35
36
  """
36
37
 
37
38
  REQUIRED_AES = {"x", "y"}
@@ -7,16 +7,20 @@ class geom_bin_2d(geom_rect):
7
7
  """
8
8
  Heatmap of 2d bin counts
9
9
 
10
+ {usage}
11
+
10
12
  Divides the plane into rectangles, counts the number of
11
13
  cases in each rectangle, and then (by default) maps the number
12
14
  of cases to the rectangle's fill. This is a useful alternative
13
15
  to geom_point in the presence of overplotting.
14
16
 
15
- {usage}
16
-
17
17
  Parameters
18
18
  ----------
19
19
  {common_parameters}
20
+
21
+ See Also
22
+ --------
23
+ plotnine.stat_bin_2d : The default stat for this `geom`.
20
24
  """
21
25
 
22
26
  DEFAULT_PARAMS = {"stat": "bin_2d", "position": "identity", "na_rm": False}
@@ -70,6 +70,10 @@ class geom_boxplot(geom):
70
70
  fatten : float, default=2
71
71
  A multiplicative factor used to increase the size of the
72
72
  middle bar across the box.
73
+
74
+ See Also
75
+ --------
76
+ plotnine.stat_boxplot : The default `stat` for this `geom`.
73
77
  """
74
78
 
75
79
  DEFAULT_AES = {
@@ -7,13 +7,13 @@ class geom_col(geom_bar):
7
7
  """
8
8
  Bar plot with base on the x-axis
9
9
 
10
+ {usage}
11
+
10
12
  This is an alternate version of [](`~plotnine.geoms.geom_bar`) that maps
11
13
  the height of bars to an existing variable in your data. If
12
14
  you want the height of the bar to represent a count of cases,
13
15
  use [](`~plotnine.geoms.geom_bar`).
14
16
 
15
- {usage}
16
-
17
17
  Parameters
18
18
  ----------
19
19
  {common_parameters}
@@ -7,15 +7,19 @@ class geom_count(geom_point):
7
7
  """
8
8
  Plot overlapping points
9
9
 
10
+ {usage}
11
+
10
12
  This is a variant [](`~plotnine.geoms.geom_point`) that counts the number
11
13
  of observations at each location, then maps the count to point
12
14
  area. It useful when you have discrete data and overplotting.
13
15
 
14
- {usage}
15
-
16
16
  Parameters
17
17
  ----------
18
18
  {common_parameters}
19
+
20
+ See Also
21
+ --------
22
+ plotnine.stat_sum : The default `stat` for this `geom`.
19
23
  """
20
24
 
21
25
  DEFAULT_PARAMS = {"stat": "sum", "position": "identity", "na_rm": False}
@@ -7,13 +7,17 @@ class geom_density_2d(geom_path):
7
7
  """
8
8
  2D density estimate
9
9
 
10
- This is a 2d version of [](`~plotnine.geoms.geom_density`).
11
-
12
10
  {usage}
13
11
 
12
+ This is a 2d version of [](`~plotnine.geoms.geom_density`).
13
+
14
14
  Parameters
15
15
  ----------
16
16
  {common_parameters}
17
+
18
+ See Also
19
+ --------
20
+ plotnine.stat_density_2d : The default `stat` for this `geom`.
17
21
  """
18
22
 
19
23
  DEFAULT_PARAMS = {
@@ -46,7 +46,7 @@ class geom_dotplot(geom):
46
46
 
47
47
  See Also
48
48
  --------
49
- plotnine.stat_bindot
49
+ plotnine.stat_bindot : The default `stat` for this `geom`.
50
50
  """
51
51
 
52
52
  DEFAULT_AES = {"alpha": 1, "color": "black", "fill": "black"}
@@ -15,7 +15,7 @@ class geom_histogram(geom_bar):
15
15
 
16
16
  See Also
17
17
  --------
18
- plotnine.geom_bar
18
+ plotnine.geom_bar : The default `stat` for this `geom`.
19
19
  """
20
20
 
21
21
  DEFAULT_PARAMS = {"stat": "bin", "position": "stack", "na_rm": False}
@@ -33,10 +33,10 @@ class geom_map(geom):
33
33
  """
34
34
  Draw map feature
35
35
 
36
- The map feature are drawn without any special projections.
37
-
38
36
  {usage}
39
37
 
38
+ The map feature are drawn without any special projections.
39
+
40
40
  Parameters
41
41
  ----------
42
42
  {common_parameters}
@@ -12,6 +12,10 @@ class geom_pointdensity(geom_point):
12
12
  Parameters
13
13
  ----------
14
14
  {common_parameters}
15
+
16
+ See Also
17
+ --------
18
+ plotnine.stat_pointdensity : The default `stat` for this `geom`.
15
19
  """
16
20
 
17
21
  DEFAULT_PARAMS = {
plotnine/geoms/geom_qq.py CHANGED
@@ -12,6 +12,10 @@ class geom_qq(geom_point):
12
12
  Parameters
13
13
  ----------
14
14
  {common_parameters}
15
+
16
+ See Also
17
+ --------
18
+ plotnine.stat_qq : The default `stat` for this `geom`.
15
19
  """
16
20
 
17
21
  DEFAULT_PARAMS = {"stat": "qq", "position": "identity", "na_rm": False}
@@ -12,6 +12,10 @@ class geom_qq_line(geom_path):
12
12
  Parameters
13
13
  ----------
14
14
  {common_parameters}
15
+
16
+ See Also
17
+ --------
18
+ plotnine.stat_qq_line : The default `stat` for this `geom`.
15
19
  """
16
20
 
17
21
  DEFAULT_PARAMS = {
@@ -16,6 +16,10 @@ class geom_quantile(geom_path):
16
16
  Line end style. This option is applied for solid linetypes.
17
17
  linejoin : Literal["round", "miter", "bevel"], default="round"
18
18
  Line join style. This option is applied for solid linetypes.
19
+
20
+ See Also
21
+ --------
22
+ plotnine.stat_quantile : The default `stat` for this `geom`.
19
23
  """
20
24
 
21
25
  DEFAULT_AES = {
@@ -7,20 +7,20 @@ class geom_sina(geom_point):
7
7
  """
8
8
  Draw a sina plot
9
9
 
10
+ {usage}
11
+
10
12
  A sina plot is a data visualization chart suitable for plotting
11
13
  any single variable in a multiclass dataset. It is an enhanced
12
14
  jitter strip chart, where the width of the jitter is controlled
13
15
  by the density distribution of the data within each class.
14
16
 
15
- {usage}
16
-
17
17
  Parameters
18
18
  ----------
19
19
  {common_parameters}
20
20
 
21
21
  See Also
22
22
  --------
23
- plotnine.stat_sina
23
+ plotnine.stat_sina : The default `stat` for this `geom`.
24
24
 
25
25
  References
26
26
  ----------
@@ -34,6 +34,10 @@ class geom_smooth(geom):
34
34
  How much (vertically) of the legend box should be filled by
35
35
  the color that indicates the confidence intervals. Should be
36
36
  in the range [0, 1].
37
+
38
+ See Also
39
+ --------
40
+ plotnine.stat_smooth : The default `stat` for this `geom`.
37
41
  """
38
42
 
39
43
  DEFAULT_AES = {
@@ -45,6 +45,10 @@ class geom_violin(geom):
45
45
  'left-right' # Alternate (left first) half violins by the group
46
46
  'right-left' # Alternate (right first) half violins by the group
47
47
  ```
48
+
49
+ See Also
50
+ --------
51
+ plotnine.stat_ydensity : The default `stat` for this `geom`.
48
52
  """
49
53
 
50
54
  DEFAULT_AES = {
plotnine/ggplot.py CHANGED
@@ -13,7 +13,6 @@ from typing import (
13
13
  Iterable,
14
14
  Optional,
15
15
  cast,
16
- overload,
17
16
  )
18
17
  from warnings import warn
19
18
 
@@ -53,10 +52,10 @@ if TYPE_CHECKING:
53
52
 
54
53
  from plotnine import watermark
55
54
  from plotnine._mpl.gridspec import p9GridSpec
55
+ from plotnine.composition import Arrange
56
56
  from plotnine.coords.coord import coord
57
57
  from plotnine.facets.facet import facet
58
58
  from plotnine.layer import layer
59
- from plotnine.plot_composition import Compose
60
59
  from plotnine.typing import DataLike
61
60
 
62
61
  class PlotAddable(Protocol):
@@ -230,18 +229,10 @@ class ggplot:
230
229
  other.__radd__(self)
231
230
  return self
232
231
 
233
- @overload
234
- def __add__(
235
- self, rhs: PlotAddable | list[PlotAddable] | None
236
- ) -> ggplot: ...
237
-
238
- @overload
239
- def __add__(self, rhs: ggplot | Compose) -> Compose: ...
240
-
241
232
  def __add__(
242
233
  self,
243
- rhs: PlotAddable | list[PlotAddable] | None | ggplot | Compose,
244
- ) -> ggplot | Compose:
234
+ rhs: PlotAddable | list[PlotAddable] | None,
235
+ ) -> ggplot:
245
236
  """
246
237
  Add to ggplot
247
238
 
@@ -251,37 +242,32 @@ class ggplot:
251
242
  Either an object that knows how to "radd"
252
243
  itself to a ggplot, or a list of such objects.
253
244
  """
254
- from .plot_composition import ADD, Compose
255
-
256
- if isinstance(rhs, (ggplot, Compose)):
257
- return ADD([self, rhs])
258
-
259
245
  self = deepcopy(self)
260
246
  return self.__iadd__(rhs)
261
247
 
262
- def __or__(self, rhs: ggplot | Compose) -> Compose:
248
+ def __or__(self, rhs: ggplot | Arrange) -> Arrange:
263
249
  """
264
250
  Compose 2 plots columnwise
265
251
  """
266
- from .plot_composition import OR
252
+ from .composition import Beside
267
253
 
268
- return OR([self, rhs])
254
+ return Beside([self, rhs])
269
255
 
270
- def __truediv__(self, rhs: ggplot | Compose) -> Compose:
256
+ def __truediv__(self, rhs: ggplot | Arrange) -> Arrange:
271
257
  """
272
258
  Compose 2 plots rowwise
273
259
  """
274
- from .plot_composition import DIV
260
+ from .composition import Stack
275
261
 
276
- return DIV([self, rhs])
262
+ return Stack([self, rhs])
277
263
 
278
- def __sub__(self, rhs: ggplot | Compose) -> Compose:
264
+ def __sub__(self, rhs: ggplot | Arrange) -> Arrange:
279
265
  """
280
266
  Compose 2 plots columnwise
281
267
  """
282
- from .plot_composition import OR
268
+ from .composition import Beside
283
269
 
284
- return OR([self, rhs])
270
+ return Beside([self, rhs])
285
271
 
286
272
  def __rrshift__(self, other: DataLike) -> ggplot:
287
273
  """
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from collections.abc import Mapping
3
4
  from dataclasses import KW_ONLY, InitVar, dataclass
4
5
  from typing import Any, Sequence
5
6
  from warnings import warn
@@ -29,6 +30,7 @@ class _scale_manual(scale_discrete):
29
30
  isinstance(self.breaks, Iterable)
30
31
  and isinstance(self.breaks, Sized)
31
32
  and len(self.breaks) == len(values)
33
+ and not isinstance(values, Mapping)
32
34
  ):
33
35
  values = dict(zip(self.breaks, values))
34
36
 
@@ -53,6 +53,10 @@ class stat_bin(stat):
53
53
  pad : bool, default=False
54
54
  If `True`{.py}, adds empty bins at either side of x.
55
55
  This ensures that frequency polygons touch 0.
56
+
57
+ See Also
58
+ --------
59
+ plotnine.histogram : The default `geom` for this `stat`.
56
60
  """
57
61
 
58
62
  _aesthetics_doc = """
@@ -35,6 +35,10 @@ class stat_bin_2d(stat):
35
35
  the stories in your data.
36
36
  drop : bool, default=False
37
37
  If `True`{.py}, removes all cells with zero counts.
38
+
39
+ See Also
40
+ --------
41
+ plotnine.geom_rect : The default `geom` for this `stat`.
38
42
  """
39
43
 
40
44
  _aesthetics_doc = """
@@ -68,6 +68,7 @@ class stat_bindot(stat):
68
68
 
69
69
  See Also
70
70
  --------
71
+ plotnine.geom_dotplot : The default `geom` for this `stat`.
71
72
  plotnine.stat_bin
72
73
  """
73
74
 
@@ -22,7 +22,7 @@ class stat_boxplot(stat):
22
22
 
23
23
  See Also
24
24
  --------
25
- plotnine.geom_boxplot
25
+ plotnine.geom_boxplot: The default `geom` for this `stat`.
26
26
  """
27
27
 
28
28
  _aesthetics_doc = """
@@ -23,6 +23,7 @@ class stat_count(stat):
23
23
 
24
24
  See Also
25
25
  --------
26
+ plotnine.geom_histogram : The default `geom` for this `stat`.
26
27
  plotnine.stat_bin
27
28
  """
28
29
 
@@ -85,7 +85,7 @@ class stat_density(stat):
85
85
 
86
86
  See Also
87
87
  --------
88
- plotnine.geom_density
88
+ plotnine.geom_density : The default `geom` for this `stat`.
89
89
  statsmodels.nonparametric.kde.KDEUnivariate
90
90
  statsmodels.nonparametric.kde.KDEUnivariate.fit
91
91
  """
@@ -37,6 +37,7 @@ class stat_density_2d(stat):
37
37
 
38
38
  See Also
39
39
  --------
40
+ plotnine.geom_density_2d : The default `geom` for this `stat`.
40
41
  statsmodels.nonparametric.kernel_density.KDEMultivariate
41
42
  scipy.stats.gaussian_kde
42
43
  sklearn.neighbors.KernelDensity
@@ -25,7 +25,7 @@ class stat_ecdf(stat):
25
25
 
26
26
  See Also
27
27
  --------
28
- plotnine.geom_step
28
+ plotnine.geom_step : The default `geom` for this `stat`.
29
29
  """
30
30
 
31
31
  _aesthetics_doc = """
@@ -37,6 +37,10 @@ class stat_ellipse(stat):
37
37
  The confidence level at which to draw the ellipse.
38
38
  segments : int, default=51
39
39
  Number of segments to be used in drawing the ellipse.
40
+
41
+ See Also
42
+ --------
43
+ plotnine.geom_path : The default `geom` for this `stat`.
40
44
  """
41
45
 
42
46
  REQUIRED_AES = {"x", "y"}
@@ -37,6 +37,10 @@ class stat_function(stat):
37
37
  then the `xlim` must be provided.
38
38
  args : Optional[tuple[Any] | dict[str, Any]], default=None
39
39
  Arguments to pass to `fun`.
40
+
41
+ See Also
42
+ --------
43
+ plotnine.geom_path : The default `geom` for this `stat`.
40
44
  """
41
45
 
42
46
  _aesthetics_doc = """
@@ -26,6 +26,10 @@ class stat_hull(stat):
26
26
  Raised when Qhull encounters an error condition,
27
27
  such as geometrical degeneracy when options to resolve are
28
28
  not enabled.
29
+
30
+ See Also
31
+ --------
32
+ plotnine.geom_path : The default `geom` for this `stat`.
29
33
  """
30
34
 
31
35
  _aesthetics_doc = """
@@ -12,6 +12,10 @@ class stat_identity(stat):
12
12
  Parameters
13
13
  ----------
14
14
  {common_parameters}
15
+
16
+ See Also
17
+ --------
18
+ plotnine.geom_point : The default `geom` for this `stat`.
15
19
  """
16
20
 
17
21
  DEFAULT_PARAMS = {"geom": "point", "position": "identity", "na_rm": False}
@@ -24,6 +24,7 @@ class stat_pointdensity(stat):
24
24
 
25
25
  See Also
26
26
  --------
27
+ plotnine.geom_density_2d : The default `geom` for this `stat`.
27
28
  statsmodels.nonparametric.kde.KDEMultivariate
28
29
  scipy.stats.gaussian_kde
29
30
  sklearn.neighbors.KernelDensity
plotnine/stats/stat_qq.py CHANGED
@@ -47,6 +47,7 @@ class stat_qq(stat):
47
47
 
48
48
  See Also
49
49
  --------
50
+ plotnine.geom_qq : The default `geom` for this `stat`.
50
51
  scipy.stats.mstats.plotting_positions : Uses `alpha_beta`
51
52
  to calculate the quantiles.
52
53
  """
@@ -41,6 +41,7 @@ class stat_qq_line(stat):
41
41
 
42
42
  See Also
43
43
  --------
44
+ plotnine.geom_qq_line : The default `geom` for this `stat`.
44
45
  scipy.stats.mstats.plotting_positions : Uses `alpha_beta`
45
46
  to calculate the quantiles.
46
47
  """
@@ -29,8 +29,8 @@ class stat_quantile(stat):
29
29
 
30
30
  See Also
31
31
  --------
32
+ plotnine.geom_quantile : The default `geom` for this `stat`.
32
33
  statsmodels.regression.quantile_regression.QuantReg
33
- plotnine.geom_quantile
34
34
  """
35
35
 
36
36
  _aesthetics_doc = """
@@ -69,7 +69,7 @@ class stat_sina(stat):
69
69
 
70
70
  See Also
71
71
  --------
72
- plotnine.geom_sina
72
+ plotnine.geom_sina : The default `geom` for this `stat`.
73
73
  """
74
74
 
75
75
  _aesthetics_doc = """
@@ -106,6 +106,7 @@ class stat_smooth(stat):
106
106
 
107
107
  See Also
108
108
  --------
109
+ plotnine.geom_smooth : The default `geom` for this `stat`.
109
110
  statsmodels.regression.linear_model.OLS
110
111
  statsmodels.regression.linear_model.WLS
111
112
  statsmodels.robust.robust_linear_model.RLM
@@ -17,6 +17,10 @@ class stat_sum(stat):
17
17
  Parameters
18
18
  ----------
19
19
  {common_parameters}
20
+
21
+ See Also
22
+ --------
23
+ plotnine.geom_point : The default `geom` for this `stat`.
20
24
  """
21
25
 
22
26
  _aesthetics_doc = """