Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: plotly/plotly.R
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: plotly/plotly.R
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: backup-fix-ggplotly-regressions
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 15 commits
  • 15 files changed
  • 2 contributors

Commits on Jan 19, 2026

  1. Fix #2415: variable named 'group' now shown in tooltip when mapped to…

    … aesthetic
    
    The previous code used unique(varName, aesName) which incorrectly filtered out
    variables named "group" even when mapped to other aesthetics like colour.
    
    The fix only skips when BOTH the aesthetic name AND variable name are "group"
    (indicating auto-generated grouping), but allows:
    1. Variables named "group" mapped to other aesthetics (e.g., colour = group)
    2. Other variables mapped to the "group" aesthetic (e.g., group = city)
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    7c09349 View commit details
    Browse the repository at this point in the history
  2. Fix #2455, #2460: element_blank panel.border no longer creates empty …

    …shapes
    
    The make_panel_border() function now checks if panel.border is NULL or
    element_blank before processing. This prevents creating useless invisible
    shapes when themes like theme_grey() or theme_classic() have blank borders.
    
    Themes with visible borders (like theme_bw()) continue to work correctly.
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    f136000 View commit details
    Browse the repository at this point in the history
  3. Fix #2466: scale_*_manual with unused aesthetics no longer errors

    When a scale has aesthetics = c("colour", "fill") but the plot only uses
    "colour", the code would try to access the non-existent "fill" column
    and error with "undefined columns selected".
    
    The fix uses intersect() to only process aesthetics that actually exist
    in each layer's data.
    
    Note: Trace splitting with multi-aesthetic scales is a separate issue (#2467).
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    a6ba02d View commit details
    Browse the repository at this point in the history
  4. Fix #2305: geom_boxplot outlier.shape=NA now hides outlier points

    The geom2trace.GeomBoxplot function now checks for:
    - outliers = FALSE parameter
    - outlier.shape = NA (via params$outlier_gp$shape in newer ggplot2)
    
    When either condition is true, boxpoints is set to FALSE in the plotly
    trace to hide outlier points.
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    fcea644 View commit details
    Browse the repository at this point in the history
  5. Fix #2467: multi-aesthetic scales now show legend and split traces co…

    …rrectly
    
    When a scale has multiple aesthetics (e.g., aesthetics = c("colour", "fill")),
    the discreteScales registry now stores each aesthetic separately instead of
    combining them with "_". This ensures that "colour_plotlyDomain" matches
    discreteScales[["colour"]] for proper trace splitting and legend generation.
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    9970b12 View commit details
    Browse the repository at this point in the history
  6. Fix #2407, #2187: legend.position theme element now translated to plo…

    …tly layout
    
    The legend.position theme element is now properly translated to plotly's
    legend positioning:
    - "bottom" -> horizontal orientation, positioned below plot
    - "top" -> horizontal orientation, positioned above plot
    - "left" -> positioned to the left of plot
    - "right" -> default (no change)
    - "none" -> legend hidden (was already working)
    - "inside" / numeric c(x, y) -> custom position inside plot area
    
    Supports both older ggplot2 (direct numeric vector) and newer ggplot2 >= 3.5.0
    (legend.position = "inside" with legend.position.inside for coordinates).
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    89f9241 View commit details
    Browse the repository at this point in the history
  7. Fix #2281: geom_blank no longer drops legend for other geoms

    Two changes were needed:
    1. geom2trace.GeomBlank now returns showlegend = FALSE to prevent
       blank traces from claiming the legendgroup
    2. The legendgroup deduplication logic now skips invisible traces
       so they don't prevent visible traces from showing in the legend
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    2ee6ed2 View commit details
    Browse the repository at this point in the history
  8. Update NEWS.md with bug fixes

    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    ab65f8e View commit details
    Browse the repository at this point in the history
  9. Fix identity scales incorrectly splitting traces

    Identity scales (guide = "none") should not cause trace splitting since
    they don't represent categorical groupings - they use raw values directly.
    
    This fixes a regression introduced by the #2467 fix where scales with
    multiple aesthetics were properly registered, but identity scales were
    incorrectly included.
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    79e9d49 View commit details
    Browse the repository at this point in the history
  10. Update shinytest2 snapshots for panel.border fix

    The element_blank panel.border fix intentionally removes empty shapes
    from the plotly output. Update the shinytest2 JSON snapshots to reflect
    this improvement.
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    e9f4d46 View commit details
    Browse the repository at this point in the history
  11. Fix boxplot: only set boxpoints when hiding outliers

    Don't explicitly set boxpoints="outliers" for all boxplots, as this
    changes the default behavior and breaks visual snapshots. Only set
    boxpoints=FALSE when outliers should be hidden.
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    0bbaa65 View commit details
    Browse the repository at this point in the history
  12. Update shinytest2 snapshots for CI viewport width

    Update plotly_relayout width from 962 to 947 to match current CI
    environment viewport dimensions.
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    cpsievert and claude committed Jan 19, 2026
    Configuration menu
    Copy the full SHA
    183fb25 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    effb698 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    4ecd29e View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    35e5d61 View commit details
    Browse the repository at this point in the history
Loading