geom_point图只有数字没有圆圈

时间:2016-07-09 19:43:17

标签: r ggplot2

在R中的ggplot中,是否可以使用唯一的数字绘制每个点,但不包括圆圈?我尝试使用颜色“白色”,但它不起作用。

2 个答案:

答案 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))

enter image description here

答案 1 :(得分:2)

我将展示如何使用geom_text 和/或 geom_point来完成此操作。

  1. 使用geom_text(推荐)
  2. 对于此示例,我将使用内置数据集mtcars并让我们假装您要显示的数字是权重(wt)变量:

    data(mtcars)
    p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars)))
    
    p + geom_text(aes(label = wt),
                  parse = TRUE)
    

    enter image description here

    或者如果您想要一个具有真正唯一数字的示例,我们可以使用seq组成索引:

    data(mtcars)
    p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars)))
    
    p + geom_text(aes(label = seq(1:32)),
                  parse = TRUE)
    

    enter image description here

    1. 使用geom_point
    2. 虽然需要更多工作,但实际上 可以使用geom_point执行此操作。

      这是您可以与geom_point一起使用的某些形状的reference图片:

      enter image description here

      如您所见,形状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") 
      

      enter image description here

      最后,使用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") 
      

      enter image description here