@@ -42,15 +42,15 @@ ggplotly/
4242│ ├── ggplot.py # Core ggplot class
4343│ ├── aes.py # Aesthetic mappings
4444│ ├── layer.py # Layer abstraction
45- │ ├── geoms/ # 44+ geometric objects
45+ │ ├── geoms/ # 46 geometric objects
4646│ ├── stats/ # 13 statistical transformations
47- │ ├── scales/ # 17+ scales
48- │ ├── coords/ # Coordinate systems
47+ │ ├── scales/ # 19 scales
48+ │ ├── coords/ # 5 coordinate systems
4949│ ├── themes.py # 9 built-in themes
5050│ ├── facets.py # facet_wrap, facet_grid
51- │ └── data/ # Built -in datasets (CSV)
51+ │ └── data/ # 16 built -in datasets (CSV)
5252├── pytest/ # Test suite (39 files)
53- ├── examples/ # Jupyter notebooks (43)
53+ ├── examples/ # Jupyter notebooks
5454└── docs/ # MkDocs documentation
5555```
5656
@@ -107,11 +107,11 @@ Optional:
107107
108108| Component | Count | Location |
109109| -----------| -------| ----------|
110- | Geoms | 44+ | ` ggplotly/geoms/ ` |
110+ | Geoms | 46 | ` ggplotly/geoms/ ` |
111111| Stats | 13 | ` ggplotly/stats/ ` |
112- | Scales | 17+ | ` ggplotly/scales/ ` |
112+ | Scales | 19 | ` ggplotly/scales/ ` |
113113| Themes | 9 | ` ggplotly/themes.py ` |
114- | Coords | 4 | ` ggplotly/coords/ ` |
114+ | Coords | 5 | ` ggplotly/coords/ ` |
115115| Datasets | 16 | ` ggplotly/data/ ` |
116116
117117## Testing Patterns
@@ -254,6 +254,7 @@ aes(y=after_stat('count / count.sum()')) # Proportions
254254| ------| ----------|
255255| ` geom_point() ` | Scatter plots |
256256| ` geom_line() ` | Line charts |
257+ | ` geom_path() ` | Connect points in data order |
257258| ` geom_bar() ` | Bar charts (stat='count' default) |
258259| ` geom_col() ` | Bar charts (stat='identity') |
259260| ` geom_histogram() ` | Histograms |
@@ -262,20 +263,38 @@ aes(y=after_stat('count / count.sum()')) # Proportions
262263| ` geom_density() ` | Density curves |
263264| ` geom_smooth() ` | Trend lines with CI |
264265| ` geom_area() ` | Area charts |
266+ | ` geom_ribbon() ` | Confidence bands (ymin/ymax) |
265267| ` geom_tile() ` | Heatmaps |
268+ | ` geom_rect() ` | Rectangles (highlight regions) |
266269| ` geom_text() ` | Text labels |
270+ | ` geom_label() ` | Text with background |
267271| ` geom_errorbar() ` | Error bars |
272+ | ` geom_segment() ` | Line segments (with optional arrows) |
268273| ` geom_vline() ` , ` geom_hline() ` | Reference lines |
274+ | ` geom_abline() ` | Slope/intercept lines |
275+ | ` geom_jitter() ` | Jittered points |
276+ | ` geom_rug() ` | Marginal tick marks |
277+ | ` geom_qq() ` , ` geom_qq_line() ` | Q-Q plots |
278+ | ` geom_contour() ` | Contour lines |
269279| ` geom_candlestick() ` | Financial OHLC |
280+ | ` geom_waterfall() ` | Waterfall charts |
270281| ` geom_map() ` | Choropleth maps |
271282
272283## Built-in Datasets
273284
274285``` python
275- from ggplotly import diamonds, mpg, iris, mtcars, economics, msleep, faithfuld
286+ from ggplotly import data
287+
288+ # List all datasets
289+ data()
290+
291+ # Load a specific dataset
292+ mpg = data(' mpg' )
293+ diamonds = data(' diamonds' )
294+ iris = data(' iris' )
276295```
277296
278- Available: diamonds, mpg, iris, mtcars, economics, msleep, faithfuld, seals, txhousing, midwest, and more in ` ggplotly/ data/ `
297+ Available: diamonds, mpg, iris, mtcars, economics, economics_long, msleep, faithfuld, seals, txhousing, midwest, presidential, commodity_prices, luv_colours, us_flights (network data)
279298
280299## Themes
281300
@@ -285,9 +304,9 @@ theme_minimal() # Clean, minimal
285304theme_classic() # Classic ggplot2 style
286305theme_dark() # Dark background
287306theme_ggplot2() # R ggplot2 style
288- theme_bw() # Black and white
289307theme_nytimes() # NYT style
290308theme_bbc() # BBC News style
309+ theme_custom() # Custom theme builder
291310```
292311
293312## Position Adjustments
@@ -304,6 +323,7 @@ position_nudge() # Shift by fixed amount
304323
305324``` python
306325coord_cartesian(xlim = (0 , 10 )) # Zoom without clipping data
326+ coord_fixed(ratio = 1 ) # Fixed aspect ratio (1:1 scaling)
307327coord_flip() # Swap x and y axes
308328coord_polar() # Polar coordinates (pie charts)
309329coord_sf() # Geographic projections
@@ -340,6 +360,9 @@ facet_wrap('category', scales='free') # 'free_x', 'free_y'
340360``` python
341361# Axis transforms
342362scale_x_log10() # Log scale
363+ scale_y_log10() # Log scale (y-axis)
364+ scale_x_reverse() # Reversed x-axis
365+ scale_y_reverse() # Reversed y-axis
343366scale_x_continuous(limits = (0 ,100 )) # Set range
344367scale_x_date(date_labels = ' %Y-%m' ) # Date formatting
345368
@@ -369,11 +392,14 @@ scale_x_rangeselector() # Add range buttons
369392| ` stat_bin ` | Bin data | ` geom_histogram ` |
370393| ` stat_density ` | Kernel density | ` geom_density ` |
371394| ` stat_smooth ` | Smoothed line + CI | ` geom_smooth ` |
372- | ` stat_boxplot ` | Boxplot stats | ` geom_boxplot ` |
373395| ` stat_ecdf ` | Empirical CDF | - |
374396| ` stat_summary ` | Summary statistics | - |
375397| ` stat_function ` | Apply function | - |
376398| ` stat_qq ` | Q-Q plot points | ` geom_qq ` |
399+ | ` stat_qq_line ` | Q-Q reference line | ` geom_qq_line ` |
400+ | ` stat_contour ` | Contour computation | ` geom_contour ` |
401+ | ` stat_stl ` | STL decomposition | ` geom_stl ` |
402+ | ` stat_fanchart ` | Fan chart percentiles | ` geom_fanchart ` |
377403
378404## Specialized Features
379405
@@ -405,6 +431,42 @@ geom_edgebundle() # Edge bundling
405431geom_sankey() # Sankey diagrams
406432```
407433
434+ ### Time Series Analysis
435+ ``` python
436+ geom_stl() # STL decomposition (trend, seasonal, residual)
437+ geom_acf() # Autocorrelation function
438+ geom_pacf() # Partial autocorrelation function
439+ geom_fanchart() # Fan charts for uncertainty
440+ geom_range() # Historical range plots (5-year range)
441+ ```
442+
443+ ### Recent Feature Additions
444+
445+ #### New Geoms
446+ - ` geom_rect ` - Draw rectangles (highlight regions, backgrounds)
447+ - ` geom_label ` - Text labels with background boxes
448+
449+ #### New Scales
450+ ``` python
451+ scale_x_reverse() # Reversed x-axis
452+ scale_y_reverse() # Reversed y-axis
453+ ```
454+
455+ #### New Parameters
456+ | Geom | Parameter | Description |
457+ | ------| -----------| -------------|
458+ | ` geom_point ` | ` stroke ` | Marker border width |
459+ | ` geom_segment ` | ` arrow ` , ` arrow_size ` | Add arrows to segments |
460+ | ` geom_errorbar ` | ` width ` | Error bar cap width |
461+ | ` geom_text ` | ` parse ` | Enable LaTeX/MathJax rendering |
462+ | ` geom_col ` | ` width ` | Bar width control |
463+ | ` geom_smooth ` | ` fullrange ` | Extend line to full x-axis |
464+ | ` geom_area ` | ` position ` | Stacking support |
465+
466+ #### Parameter Aliases (ggplot2 compatibility)
467+ - ` linewidth ` → ` size ` (ggplot2 3.4+)
468+ - ` colour ` → ` color ` (British spelling)
469+
408470## Adding New Features
409471
410472### New Geom
0 commit comments