【问题标题】:Drawing x-y plot with rhombus width and height controlled by xError and yError in R绘制由 R 中的 Error 和 Error 控制的菱形宽度和高度的 x-y 图
【发布时间】:2013-08-22 10:46:36
【问题描述】:

我最近发布了一篇关于将 x-y 图控制为两条正态曲线的帖子,此后我意识到我把事情弄得太复杂了。从那以后,我设法将其绘制为椭圆,但这略微高估了错误;理想情况下可以绘制为菱形。

我必须知道的代码是:

plot(c(-5,10), c(-5,5),  xlab = expression(Age), ylab = expression(value), type="n")
draw.ellipse(Age, value, a=Age_error, b=value_error, col="grey70")

哪些情节:

有没有办法用菱形替换椭圆,菱形的高度由 2x value_error 控制,宽度由 2x age_error 控制?

我的数据框在下面

  structure(list(Age = c(1L, 2L, 4L), value = c(3, -2, 0.01), Age_error = c(2, 
  1.4, 3), value_error = c(0.5, 1, 2.1)), .Names = c("Age", "value", 
  "Age_error", "value_error"), class = "data.frame", row.names = c(NA, 
  -3L))

非常感谢

【问题讨论】:

  • draw.ellipse 来自哪里?
  • 我猜你只是想用polygon创建一个连接四个极值点的draw.rhombus函数?是吗?
  • 是的 - 类似的东西会很棒。我可以画出一个菱形(我想);但正在努力争取多个。我的一些地块有大约 60 个 x-y 对。
  • 只需使用一个循环或其中一个 apply/plyr 函数 - draw.ellipse 函数就是这样做的,调用它的 draw1ellipse 函数。
  • 谢谢。会尝试。我制作了一个菱形,但需要一个具有 2 列和 4 行的全新数据框。不太确定如何将我所有的 x-y 对转换为合适的设置。我会努力的。

标签: r plot scatter-plot


【解决方案1】:

您可以使用 TeachingDemos 包中的my.symbolsms.polygon 函数来绘制菱形:

library(TeachingDemos)
plot(c(-5,10), c(-5,5),  xlab = expression(Age), ylab = expression(value), 
    type="n")
my.symbols( Age, value, ms.polygon, n=4, xsize=2*Age_error, 
    ysize=2*value_error, linesfun=polygon, col='grey' ) 

如果您不想填充菱形,请忽略 linesfuncol

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多