[英]How to plot an "error circle" using plotly
我有一个描述已知和估计数据的路径图。 对于估计部分,我想添加显示预期误差的阴影区域(在 x 和 y 方向上相同)。
我尝试简单地使用可变size
的add_markers
:
library(plotly)
data.frame(x = c(0, 1, 2, 1, 0, -1, -2, -1, 0),
y = c(2, 1, 0, -1, -2, -1, 0, 1, 3),
err = c(rep(NA, 6), 0.25, 0.5, 1)) %>%
plot_ly() %>%
add_paths(
x = ~x,
y = ~y
) %>%
add_markers(
x = ~x,
y = ~y,
size = ~err,
marker = list(sizemode = "radius")
)
然而,这是完全不够的。 err
值表示“误差圆的半径”。 所以最后一点( x=0, y=3
)应该有一个从y = 2..4
开始的圆,但它的半径似乎在 0.75 左右。 我可以通过修改marker.sizeref
参数来解决这个问题,但还有其他问题。 由于size
参数实际上是以像素计算的,因此它不受比例变化的影响:如果我放大或缩小,圆圈的大小不会改变。 并且使用缩放框改变纵横比应该会导致“错误圆圈”变成“错误椭圆”,这显然不会使用这种方法发生。
现在,我知道 plotly shapes
,但它们似乎没有椭圆,而且我不知道如何一次创建多个形状(除了使用 for 循环或类似的东西构建列表)。
那么,是否可以使用 plotly 创建这样的“错误圈”?
这绘制了我手动输入值的多个形状,如果你有很多这样的圆圈要手动输入,这可能是一个巨大的痛苦。 它确实正确地绘制了圆圈。
data.frame(x = c(0, 1, 2, 1, 0, -1, -2, -1, 0),
y = c(2, 1, 0, -1, -2, -1, 0, 1, 3),
err = c(rep(NA, 6), 0.25, 0.5, 1)) %>%
plot_ly() %>%
add_paths(
x = ~x,
y = ~y
) %>%
layout(shapes = list(
list(type = 'circle',
xref= 'x', x0 = -1, x1 = 1,
yref= 'y', y0 = 2, y1 = 4,
fillcolor = 'rgb(255,0,0)',
line = list(color='rgb(255,0,0)'),
opacity = 0.7),
list(type = 'circle',
xref= 'x', x0 = -1.5, x1 = -0.5,
yref= 'y', y0 = 1.5, y1 = 0.5,
fillcolor = 'rgb(255,0,0)',
line = list(color='rgb(255,0,0)'),
opacity = 0.7),
list(type = 'circle',
xref= 'x', x0 = -2.25, x1 = -1.75,
yref= 'y', y0 = 0.25, y1 = -0.25,
fillcolor = 'rgb(255,0,0)',
line = list(color='rgb(255,0,0)'),
opacity = 0.7)
))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.