【问题标题】:Different plotting symbols in r scatter plotr散点图中的不同绘图符号
【发布时间】:2020-06-20 14:17:42
【问题描述】:
    bweight  gestwks            hyp  sex
1   2974    38.5200004577637    0   female
2   3270    NA                  0   male
3   2620    38.150001525878899  0   female
4   3751    39.799999237060497  0   male
5   3200    38.889999389648402  1   male
6   3673    40.970001220703097  0   female

我想绘制婴儿体重 (bweight) 与妊娠期 (gestwks) 的关系。

这是我的代码:

plot(courseworkData1$bweight ~ courseworkData1$gestwks, xlab="Gestation Period", ylab="Baby weight")

但是,我有“hyp”变量。简称为母体高血压。我想制作一个图,用不同的符号绘制患有高血压的婴儿体重,比如正方形或其他东西。我该怎么做?

【问题讨论】:

    标签: r plot scatter-plot


    【解决方案1】:

    "如果我想将符号从普通圆形更改为 用黑色填充的圆圈和正方形表示三角形,你会怎么做 那个?”

    R 有 25 个基于整数 1-25 的易于访问的绘图字符 (pch)。还有其他的,但这些是常用的。你可以从这些命令中看到它们:

    # windows(7,4)
    plot(-1:25, rep(0,27), pch=-1:25, cex=2, col="blue", bg="red", yaxt="n")
    text(-1:25, rep(0,27), labels=-1:25, pos=1)
    abline(v=c(14.5, 20.5))
    mtext(text=c("Hollow symbols", "Filled symbols", "Filled symbols\nwith borders"), 
          side=3, at=c(6, 17.5, 23), line=-2)
    

    对于 pch -1:14,您会得到空心符号——它们不能用颜色或背景填充。只有符号 15 到 20 可以使用col 图形参数完全填充颜色(默认为黑色)。对于符号 21 到 25,使用 bg 图形参数(默认为无)指定颜色,并且可以使用col(默认为黑色)指定颜色和使用lwd(默认值为 1)。符号 15 到 18 没有边框,所以由pch=16 给出的实心圆将比由pch=19 给出的实心圆小,大小取决于边框的大小 (lwd) 和符号的大小 (cex)。

    因此,要获得黑色实心圆圈,您可以选择pch=16pch=19,对于(空心)三角形,您可以选择pch=2pch=6(倒置)。

    【讨论】:

      【解决方案2】:

      我们可以使用pch参数到plot来指定一个用于符号的变量:

      编辑:

      适合您的数据:

      创建 MRE:

      courseworkData1 <- read.table(text="ID   bweight  gestwks            hyp  sex
      1   2974    38.5200004577637    0   female
      2   3270    NA                  0   male
      3   2620    38.150001525878899  0   female
      4   3751    39.799999237060497  0   male
      5   3200    38.889999389648402  1   male
      6   3673    40.970001220703097  0   female", header=TRUE, stringsAsFactors=FALSE)
      

      使用?pch,我们可以获得可用符号列表。然后我们只需要添加一个新变量来编码所需的密钥。例如,如果我们想使用正方形(key = 0)和三角形(key = 2):

      courseworkData1$symbol_key <- ifelse(courseworkData1$hyp == 0, 0, 2)
      plot(bweight ~ gestwks, data=courseworkData1, 
           xlab="Gestation Period", ylab="Baby weight", pch=courseworkData1$symbol_key)
      legend("bottomright", title="hyp", legend = c("0", "1"), pch = c(0,2))
      

      【讨论】:

      • 嗨,我不明白为什么你这里有3个符号,符号不同的条件是什么
      • 每个唯一值都有自己的符号...查看我的编辑
      • 好的,非常感谢。还有一个问题。如果我想将符号从普通圆形更改为黑色实心圆形,将正方形更改为三角形,你会怎么做?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多