我想绘制一个柱状图,每个类别(
LETTERS
)有两个并排的柱子,并且要在每个柱子上添加一条水平线(红线用y_ref
表示, 绿线用z_ref
表示)。它应该看起来像这样:
我试着用 add_trace
(和 add_lines, add_segment等),但是找不到正确的方法使它正常工作。以下是我迄今为止尝试过的其中之一。df <- tibble(x = LETTERS[1:5], y = runif(5), z = runif(5), y_ref = runif(5), z_ref = runif(5))
plot_ly(
df,
x = ~x,
y = ~y,
type = "bar",
name = "a"
) %>% add_trace(
y = ~z,
name = "b"
) %>% layout(
legend = list(
orientation = "h"
)
) %>% add_trace(
y = ~y_ref,
type = 'scatter',
mode = 'lines',
marker = list(
line = list(
width = 2,
color = "red"
)
)
) %>% add_trace(
y = ~z_ref,
type = 'scatter',
mode = 'lines',
marker = list(
line = list(
width = 2,
color = "green"
)
)
)
编辑:我需要解决n
个条的问题。
x1 = (k + k)/(2*n) - (1/(10*n))
和x0 = (1/(2.5*n))
,在左边,它是x1 = (j + j - 1)/(2*n)
和x0 = x1 - (1/(2.5*n))
。(顺便说一下,我不小心删除了我的先前评论,在那里我询问了n个条的通用解决方案)。 - sedsiv