我花了几个小时在文档和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")
如果能帮上忙,我们将不胜感激!
发布于 2014-05-14 01:14:27
提到的教程@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.y = 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()
。
https://stackoverflow.com/questions/23635662
复制相似问题