Chcę zduplikować lewą oś Y na wykresie ggplot2 po prawej stronie, a następnie zmienić etykiety zaznaczenia dla dyskretnej (jakościowej) osi.Powielanie (i modyfikowanie) dyskretnej osi w ggplot2
Czytałem odpowiedź this question, jednak jak widać on the package's repo page funkcja switch_axis_position()
została usunięta z pakietu cowplot
(autor cytowany (wkrótce?) Native funkcjonalności ggplot2).
Widziałem stronę reference na osiach wtórnych w ggplot2, jednak wszystkie przykłady w tym dokumencie używają raczej scale_y_continuous
niż scale_y_discrete
. I rzeczywiście, gdy próbuję użyć funkcji dyskretnej, pojawia się błąd:
Error in discrete_scale(c("y", "ymin", "ymax", "yend"), "position_d", :
unused argument (sec.axis = <environment>)
Czy mimo to zrobić z ggplot2? Nawet rozwiązanie całkowicie zhakowane będzie dla mnie wystarczające. Z góry dziękuję. (MRE poniżej)
library(ggplot2)
# Working continuous plot with 2 axes
ggplot(mtcars, aes(cyl, mpg)) +
geom_point() +
scale_y_continuous(sec.axis = sec_axis(~.+10))
# Working discrete plot with 1 axis
ggplot(mtcars, aes(cyl, as.factor(mpg))) +
geom_point()
# Broken discrete plot with 2 axes
ggplot(mtcars, aes(cyl, as.factor(mpg))) +
geom_point() +
scale_y_discrete(sec.axis = sec_axis(~.+10))
patrząc na źródło 'scale_y_discrete' nie ma opcji/argumentem do określania osi pomocniczej. Więc każde rozwiązanie będzie prawdopodobnie musiało być hackerem. – SymbolixAU