Próbowałem zmienić kluczowe etykiety na ggplot
, ale nie udało mi się nieudać. Gdy wskazuję etykiety w scale_color_manual
Linia Legenda wydawana jest powielona. Gdzie jest mój błąd?
Rozważ de Przykład:
mydata <- data.frame(
year=as.integer(rep(2010:2020,each=2)),
type=rep(c("a","b"),11),
value=c(617,186,546,241,430,217,349,188,286,141,446,166,442,167,424,210,421,182,405,190,432,194))
ggplot(mydata,aes(year,value,group=type))+
theme_bw()+
theme(
axis.text=element_text(size=16),
axis.title=element_text(size=18),
legend.position=c(.75,.885),
legend.key = element_rect(color = "white", fill = NA),
legend.key.size = unit(1, "cm"),
legend.title=element_blank(),
legend.text=element_text(size=20)
)+
labs(x="year",y="number")+
geom_point(aes(color=type,shape=type),size=3)+
scale_x_continuous(breaks = seq(min(mydata$year),max(mydata$year), by = 2))+
scale_shape_manual(values=c(15,19))+
scale_color_manual(values=c("red","blue"))
Ale jeśli zastąpię klucz legendy "A" i "B" z "grupą a" i "grupą b"
scale_color_manual(values=c("red","blue"),labels=c("group a","group b"))
Dostaję powielane legendy, a kolorowe kule stają się błędne.
Co się dzieje?
Dzięki!
2 odpowiedzi
Możesz to zrobić bez zmiany poziomów współczynnika, pod warunkiem, że dodasz te same etykiety zarówno do skali kolorów, jak i kształtnych:
ggplot(mydata,aes(year,value,group=type))+
theme_bw()+
theme(
axis.text=element_text(size=16),
axis.title=element_text(size=18),
legend.position=c(.75,.885),
legend.key = element_rect(color = "white", fill = NA),
legend.key.size = unit(1, "cm"),
legend.title=element_blank(),
legend.text=element_text(size=20)
)+
labs(x="year",y="number")+
geom_point(aes(color=type,shape=type),size=3)+
scale_x_continuous(breaks = seq(min(mydata$year),max(mydata$year), by = 2))+
scale_shape_manual(values=c(15,19), labels = c("group a", "group b")) +
scale_color_manual(values=c("red","blue"), labels = c("group a", "group b"))
Problem jest spowodowany zmianą etykiet kolorów, ale nie etykiety kształtu. Możesz więc zastosować etykiety na kształt i kolor, albo zmienić etykiety czynnika type
przed spiskowaniem.
library(ggplot2)
library(dplyr)
mydata %>%
mutate(type = factor(type, labels = c("group a","group b"))) %>%
ggplot(aes(year,value))+
theme_bw()+
theme(
axis.text=element_text(size=16),
axis.title=element_text(size=18),
legend.position=c(.75,.885),
legend.key = element_rect(color = "white", fill = NA),
legend.key.size = unit(1, "cm"),
legend.title=element_blank(),
legend.text=element_text(size=20)
)+
labs(x="year",y="number")+
geom_point(aes(color=type,shape=type),size=3)+
scale_x_continuous(breaks = seq(min(mydata$year),max(mydata$year), by = 2))+
scale_shape_manual(values=c(15,19))+
scale_color_manual(values=c("red","blue"))
Podobne pytania
Nowe pytania
r
R to darmowy język programowania typu open source i środowisko oprogramowania do obliczeń statystycznych, bioinformatyki, wizualizacji i obliczeń ogólnych. Proszę podać minimalne i powtarzalne przykłady wraz z pożądanymi wynikami. Użyj dput () dla danych i określ wszystkie pakiety inne niż podstawowe za pomocą wywołań biblioteki (). Nie osadzaj obrazów dla danych lub kodu, zamiast tego użyj wciętych bloków kodu. W przypadku pytań związanych ze statystykami należy skorzystać z https://stats.stackexchange.com.