【问题标题】:how to create a plot with customized points in R?如何在 R 中创建带有自定义点的图?
【发布时间】:2012-03-31 17:20:01
【问题描述】:

我知道我可以使用 plot 命令中的 type = "o" 参数创建带有线和点的图。我希望对此进行更多控制——我希望能够将“o”绘制为 full 点,带有黑色边框和我选择的填充颜色、自定义大小和与线不同的颜色。这条线也一样,我想让它更粗,而且我选择的颜色。我将如何继续这样做?

到目前为止我发现的只是一个普通的

 plot(y, type= "o")

这对我的需求来说太差了。

我对使用 ggplot 不感兴趣,而是使用 R 的内部绘图库。 任何帮助表示赞赏。

【问题讨论】:

  • 仔细查看?points,包括运行示例 (example("points")) ...
  • 谢谢。我会看看 ?points,但这些例子似乎并没有呈现我所需要的。它们确实有一个实心圆圈,但没有边框。
  • 仔细看,第二个图(浅蓝色背景,深蓝色边缘),第三个图(点类型 21-25;黄色背景,红色边缘)

标签: r graphics plot


【解决方案1】:

按照@BenBolker 的建议,您需要的所有信息都应包含在?plot?points 中。特别是,您希望使用pch=21,并用bg 参数指定背景颜色,用cex 指定大小,用lwd 指定线宽。

如果您希望线条与点边界的粗细不同,则需要先绘制线条,然后再叠加点。

例如:

y <- sample(10)
plot(y, lwd=6, type='l')
points(y, bg='tomato2', pch=21, cex=3, lwd=3) # tomato2 is a personal fave

您还可以为点调用提供lwdcexcol 的向量:

plot(y, lwd=6, type='l')
points(y, bg=rainbow(10), pch=21, cex=seq(1, by=0.2, length.out=10), 
       lwd=seq(2, by=1, length.out=10))

【讨论】:

    【解决方案2】:

    你可以使用分层(作为一名社会研究人员,我不再在基地工作太多,我喜欢 ggplot 的 facet_grid,所以可能有更好的方法),如:

    x <- sort(rnorm(25))
    y <- sort(rnorm(25))
    z <- as.factor(sample(LETTERS[1:5], 25, r=TRUE))
    
    plot(x, y, pch = 19, cex = 1.3)
    par(new = TRUE)
    plot(x, y, pch = 19, cex = 1, col = z)
    

    这为您提供:

    【讨论】:

    • 我建议在第二次调用 'plot' 之前添加 opar
    • 不需要分层来获得彩色填充点。 bgpch=21 可以解决问题。
    猜你喜欢
    • 2019-10-22
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    相关资源
    最近更新 更多