Редактирование меток условных обозначений (текста) в ggplot
Я потратил часы на просмотр документации и на StackOverflow, но ни одно решение, похоже, не решает мою проблему. При использовании ggplot
Я не могу получить правильный текст в легенде, даже если он находится в моем фрейме данных. Я пробовал scale_colour_manual
,scale_fill_manual
С разными значениями labels=
например c("T999", "T888")", "cols"
.
вот мой код:
T999 <- runif(10, 100, 200)
T888 <- runif(10, 200, 300)
TY <- runif(10, 20, 30)
df <- data.frame(T999, T888, TY)
ggplot(data = df, aes(x=T999, y=TY, pointtype="T999")) +
geom_point(size = 15, colour = "darkblue") +
geom_point(data = df, aes(x=T888, y=TY), colour = 'red', size = 10 ) +
theme(axis.text.x = element_text(size = 20), axis.title.x =element_text(size = 20), axis.text.y = element_text(size = 20)) +
xlab("Txxx") + ylab("TY [°C]") + labs(title="temperatures", size = 15) +
scale_colour_manual(labels = c("T999", "T888"), values = c("darkblue", "red")) + theme(legend.position="topright")
помощь была бы очень признательна! Тнх.
2 ответа:
упомянутый учебник @Henrik является отличным ресурсом для изучения того, как создавать сюжеты с помощью
ggplot2
пакета.пример с вашими данными:
# transforming the data from wide to long library(reshape2) dfm <- melt(df, id = "TY") # creating a scatterplot ggplot(data = dfm, aes(x = TY, y = value, color = variable)) + geom_point(size=5) + labs(title = "Temperatures\n", x = "TY [°C]", y = "Txxx", color = "Legend Title\n") + scale_color_manual(labels = c("T999", "T888"), values = c("blue", "red")) + theme_bw() + theme(axis.text.x = element_text(size = 14), axis.title.x = element_text(size = 16), axis.text.y = element_text(size = 14), axis.title.x = element_text(size = 16), plot.title = element_text(size = 20, face = "bold", color = "darkgreen"))
в результате:
как упоминалось @user2739472 в комментариях: если вы хотите изменить только текстовые метки легенды, а не цвета из палитры по умолчанию ggplot, вы можете использовать
scale_color_hue(labels = c("T999", "T888"))
вместоscale_color_manual()
.
названия легенд могут быть помечены конкретными эстетическое.
это может быть достигнуто с помощью
guides()
илиlabs()
функцииggplot2
(более здесь и здесь). Он позволяет добавлять свойства руководства / легенды с помощью эстетического отображения.пример использования
mtcars
набор данных, иlabs()
:ggplot(mtcars, aes(x=mpg, y=disp, size=hp, col=as.factor(cyl), shape=as.factor(gear))) + geom_point() + labs(x="miles per gallon", y="displacement", size="horsepower", col="# of cylinders", shape="# of gears")
отвечая на вопрос ОП с помощью
guides()
:# transforming the data from wide to long require(reshape2) dfm <- melt(df, id="TY") # creating a scatterplot ggplot(data = dfm, aes(x=TY, y=value, color=variable)) + geom_point(size=5) + labs(title="Temperatures\n", x="TY [°C]", y="Txxx") + scale_color_manual(labels = c("T999", "T888"), values = c("blue", "red")) + theme_bw() + guides(color=guide_legend("my title")) # add guide properties by aesthetic