我正在尝试绘制树环并计算它们的面积。但是,我注意到实际上并非所有环都具有像圆一样的对称半径。我有 4 个半径的数据测量值,我想在每个无线电的每个点之后绘制圆环(或任何类似形状),就像这个例子一样(这个图是用 PowerPoint 中的矢量手动完成的):
circles
问题是,在 RI 中,只发现了使用函数选项绘制这些环的可能性symbols()
,我得到了这张图:
使用这个 R 脚本:
data <- data.frame(
a = c(1,4,5,8, 10),
b = c(1, 3,7,9, 10),
c = c(2, 6, 8, 9 ,10),
d = c(1, 3, 4, 7, 9) )
data$y <- (data$a - data$b)/2 # y position
data$x <- (data$d - data$c)/2 # x position
data$z <- rowMeans(data[,1:4]) # radio length
symbols(x = data$x, y = data$y, circles=data$z,
xlim = c(-10, 10)*1.5, ylim = c(-10, 10)*1.5, inches = F, fg = "orange", lwd = 2)
我检查了一些具有绘制椭圆功能的包(elliplot
、ellipse
、ellipseplot
、car
等),但我不喜欢它们的功能。我对使用这些包不感兴趣,相反我想编写一个自己的代码。
我的想法是用我的四个半径的数据值绘制一个最符合环真实图形的形状,它可以是椭圆形、椭圆形等。
用一个圆圈,我只使用一个无线电的数据(在我的例子中,所有半径的平均值)。使用椭圆会更好,因为我可以使用至少两个值,即长轴 (A+B) 和短轴 (C+D)。但是绘制一个使用四个半径(A、B、C、D)甚至更多半径值的形状会很棒。
这里有一个人用R 脚本画了一个非常漂亮的超椭圆,另一个人也用 R画了一些椭圆,比如环。
但是,我不知道如何使用他们的方法来解决我的具体问题。
如果有人知道如何开始在 R 中至少绘制一个椭圆会很好。但如果知道如何使用四个半径的值绘制形状(椭圆、椭圆等)并最终计算它们的面积,那就太好了。
我非常感谢您的帮助或任何指导。
更新:
感谢@cuttlefish44 的出色回答,这对向我的学生解释树木生长非常有用。然而,大多数热带树木的形状非常不规则,现在我想知道是否可以用额外的无线电“E”和不同位置的半径轴绘制这个其他形状,就像这个方案:
任何方向对我来说都非常有用。