我正在尝试从一张图中的两个不同数据集中绘制点。我想用geom_text添加点的“值”,但这不起作用。
我无法向您显示数据集,但是数据集 p1 和 p2 都有3列数字。
我想绘制第2列的第3列功能(数据集2中的点以红色表示,数据集1中的点以蓝色表示)。并添加第1列作为标签
ggplot()+geom_point(size=8,col="red",aes(x=p2[,3],y=p2[,2]/sum(p2[,2])))+
geom_text(label=p2[,1])+ylab("frequence")+
geom_point(size=8,col="blue",aes(x=p1[,3],y=p1[,2]/sum(p1[,2])))+
geom_text(label=p1[,1])
用蓝色和红色分别绘制我想要的点,但没有标签。
我可以使用2个数据集打印标签
ggplot(p2,aes(x=p2[,3],y=p2[,2]/sum(p2[,2])))+geom_text(label=p2[,1])+ylab("frequence")+ geom_point(size=8,col="red",alpha=0.2)+
geom_point(size=8,col="blue",alpha=0.2,aes(x=p1[,3],y=p1[,2]/sum(p1[,2])))+geom_text(label=p1[,1])
这里的问题是两个标签都印在我的红点上
感谢您的时间
答案 0 :(得分:1)
在使用2个数据集时,应在每个geom function
中使用参数data =
指定正确的数据集。
library(ggplot)
p1 <- data.frame(c1 = rnorm(10), c2 = rnorm(10), c3 = rnorm(10))
p2 <- data.frame(c1 = rnorm(10), c2 = rnorm(10), c3 = rnorm(10))
ggplot() +
geom_point(aes(x = c3, y = c2 / sum(c2)), col = "red", data = p2) +
geom_text(aes(x = c3, y = c2 / sum(c2), label = round(c1, 2)), data = p2) +
geom_point(aes(x = c3, y = c2 / sum(c2)), col = "blue", data = p1) +
geom_text(aes(x = c3, y = c2 / sum(c2), label = round(c1, 2)), data = p1)