在R中的ggplot中,是否可以使用唯一的数字绘制每个点,但不包括圆圈?我尝试使用颜色“白色”,但它不起作用。
答案 0 :(得分:4)
我建议geom_text
。
set.seed(101)
dd <- data.frame(x=rnorm(50),y=rnorm(50),id=1:50)
library(ggplot2)
ggplot(dd,aes(x,y))+geom_text(aes(label=id))
答案 1 :(得分:2)
我将展示如何使用geom_text
和/或 geom_point
来完成此操作。
geom_text
(推荐)对于此示例,我将使用内置数据集mtcars
并让我们假装您要显示的数字是权重(wt
)变量:
data(mtcars)
p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars)))
p + geom_text(aes(label = wt),
parse = TRUE)
或者如果您想要一个具有真正唯一数字的示例,我们可以使用seq
组成索引:
data(mtcars)
p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars)))
p + geom_text(aes(label = seq(1:32)),
parse = TRUE)
geom_point
虽然需要更多工作,但实际上 可以使用geom_point
执行此操作。
这是您可以与geom_point
一起使用的某些形状的reference图片:
如您所见,形状48到57是0到9.您可以通过geom_point
来利用这些形状(以及它们的组合形成无限数量):
d=data.frame(p=c(48:57))
ggplot() +
scale_y_continuous(name="") +
scale_x_continuous(name="") +
scale_shape_identity() +
geom_point(data=d, mapping=aes(x=p%%16, y=p%/%16, shape=p), size=5, fill="red")
最后,使用mtcars
+ geom_point
使用任意数字的简单示例:
d=data.frame(p=c(48:57,48:57,48:57,48,49))
attach(mtcars)
ggplot(mtcars) +
scale_y_continuous(name="") +
scale_x_continuous(name="") +
scale_shape_identity() +
geom_point(data=d, mapping=aes(x=wt, y=mpg, shape=p), size=5, fill="red")