Git Product home page Git Product logo

Comments (6)

teunbrand avatar teunbrand commented on July 21, 2024 1

Should be fixed in the label refactoring in #5879.
OTOH, some people might expect the global aesthetics to overrule local aesthetics.

devtools::load_all("~/packages/ggplot2")
#> ℹ Loading ggplot2

palmerpenguins::penguins |> 
  ggplot(aes(x = flipper_length_mm, y = body_mass_g, colour = sex)) +
  geom_point(aes(x = bill_depth_mm, y = bill_length_mm, colour = species))
#> Warning: Removed 2 rows containing missing values or values outside the scale range
#> (`geom_point()`).

Created on 2024-05-20 with reprex v2.1.0

from ggplot2.

yutannihilation avatar yutannihilation commented on July 21, 2024

@teunbrand

OTOH, some people might expect the global aesthetics to overrule local aesthetics.

Sorry for a late question. I, more specifically, the gghighlight package, expected it. So, what's the recommendation for those people? Setting the label attribute?

devtools::load_all("~/GitHub/ggplot2/")
#> ℹ Loading ggplot2
library(gghighlight)

# The original labels should be kept
ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +
  geom_point() +
  gghighlight(100 < disp, disp <= 300, use_group_by = FALSE)

Created on 2024-07-17 with reprex v2.1.0

from ggplot2.

teunbrand avatar teunbrand commented on July 21, 2024

That would work if you use plain symbols in aes(), but you could also use any other label setting mechanism like using labs() or scale_{x/y/colour}_*(name).

from ggplot2.

yutannihilation avatar yutannihilation commented on July 21, 2024

That would work if you use plain symbols in aes()

Ah, okay, it's not necessarily a plain symbol, so it seems I need to use labs(). I wanted to avoid constructing the labels by myself, but I think I can make it. Thanks for the hint!

from ggplot2.

teunbrand avatar teunbrand commented on July 21, 2024

Sorry if I have been unclear, I meant 'a NSE column name' when I said 'plain symbol'.
Given that the mappings give column names, label-attributes should work.

library(gghighlight)
#> Loading required package: ggplot2

# The original labels should be kept
p <- ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +
  geom_point() +
  gghighlight(100 < disp, disp <= 300, use_group_by = FALSE)

p$layers[[1]]$mapping
#> Aesthetic mapping: 
#> * `x`      -> `highlight..........1`
#> * `y`      -> `highlight..........2`
#> * `colour` -> `highlight..........3`
#> * `fill`   -> NULL
#> * `group`  -> `highlight..........group`
colnames(p$layers[[1]]$data)
#> [1] "highlight..........1"     "highlight..........2"    
#> [3] "highlight..........3"     "highlight..........group"

Created on 2024-07-17 with reprex v2.1.1

from ggplot2.

yutannihilation avatar yutannihilation commented on July 21, 2024

Ah, I understand what you wrote. I was thinking if I can set the label attributes of the plot data, but, in this code for example, colour is an expression, not a variable. But, modifying a layer might be an option, thanks for the suggestion.

library(gghighlight)
#> Loading required package: ggplot2
p <- ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +
  geom_point() +
  gghighlight(100 < disp, disp <= 300, use_group_by = FALSE)

p$mapping
#> Aesthetic mapping: 
#> * `x`      -> `wt`
#> * `y`      -> `mpg`
#> * `colour` -> `factor(cyl)`

Created on 2024-07-17 with reprex v2.1.0

from ggplot2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.