ggplot2 point fill doesn't translate correctly
Nobody has claimed this yet.
- Dominant language
- R
- Stars
- 2.7k
- Forks
- 641
- PR merge metrics
- No merged PRs in 30d
Description
Summary
aes(color = z) works as expected.
aes(fill = z) does not, and it produces a warning.
Expected behavior
aes(color = z) works as expected.
library(ggplot2)
library(plotly)
set.seed(42)
d <- data.frame(
x = rnorm(1000),
y = rnorm(1000),
z = rnorm(1000)
)
p <- ggplot(d, aes(x, y, color = z)) +
geom_point(size = 3)
ggplotly(p)

Observed behavior
On the other hand, aes(fill = z) does not work as expected.
There are two issues:
- All of the points are the same color
- There is a warning message suggesting there's a bug somewhere
p <- ggplot(d, aes(x, y, fill = z)) +
geom_point(shape = 21, size = 3)
ggplotly(p)
Warning message:
In L$marker$color[idx] <- aes2plotly(data, params, "fill")[idx] :
number of items to replace is not a multiple of replacement length

R version 3.4.4 (2018-03-15) Platform: x86_64-apple-darwin17.4.0 (64-bit) Running under: macOS High Sierra 10.13.3Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /usr/local/Cellar/openblas/0.2.20_1/lib/libopenblasp-r0.2.20.dyliblocale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8attached base packages:
[1] stats graphics grDevices utils datasets methods baseother attached packages:
[1] plotly_4.7.1 ggplot2_2.2.1.9000 devtools_1.13.5 colorout_1.2-0loaded via a namespace (and not attached):
[1] Rcpp_0.12.16 pillar_1.2.1 compiler_3.4.4 plyr_1.8.4 bindr_0.1.1
[6] tools_3.4.4 digest_0.6.15 jsonlite_1.5 memoise_1.1.0 tibble_1.4.2
[11] gtable_0.2.0 viridisLite_0.3.0 pkgconfig_2.0.1 rlang_0.2.0.9001 rstudioapi_0.7
[16] shiny_1.0.5 crosstalk_1.0.0 yaml_2.1.18 bindrcpp_0.2.2 withr_2.1.2
[21] dplyr_0.7.4 httr_1.3.1 htmlwidgets_1.0 grid_3.4.4 glue_1.2.0
[26] data.table_1.10.4-3 R6_2.2.2 purrr_0.2.4 tidyr_0.8.0 magrittr_1.5
[31] scales_0.5.0.9000 htmltools_0.3.6 assertthat_0.2.0 xtable_1.8-2 mime_0.5
[36] colorspace_1.3-2 httpuv_1.3.6.2 labeling_0.3 lazyeval_0.2.1 munsell_0.4.3
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided R reproduction with ggplotly and compare the working color mapping with the failing fill mapping. Trace the fill translation associated with the warning about replacing marker colors; done means shape-21 points receive varying fills from z without the warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100