0
我有一个data.frame,我在y轴上绘制一个值,id,对x轴上的一个值t另一个值s如何添加一条垂直线到R的阴谋图和y变量的因子
library(plotly)
library(dplyr)
# create data.frame
df <- data.frame(id=c("a","b","c"),s=c(1,3,2),t=c(3,2,1))
# set order
levels <- df %>%
arrange(s) %>%
.$id #[1] a c b
# plot
df %>%
mutate(id=factor(id, levels = levels)) %>%
plot_ly(x=~t,y=~id) %>%
add_markers()
这工作正常。
但是我想添加一个垂直线表示T的平均值,由s
line <- weighted.mean(df$t,df$s)
加权和我无法找到正确的方式来做到这一点
TIA
我想在加权平均点的垂直线(因此在该示例中这将是在1.83)从“A”到“b”延伸的一路在我的情节。 x_values = weighted.mean(df $ t,df $ s)将行放在正确的位置,但像y_values = c(as.character(levels [1]),as.character(levels [length(levels)]))根据需要在a和b之间插入一行,但将y轴重新排列为字母顺序,这不是我想要的 – pssguy
@pssguy:感谢您的澄清!查看更新的答案。 –
@Maximillian Peters非常感谢。在更正的代码中,我认为我们现在可以不使用x_values&y_values。更重要的是,我认为它应该是nrow(df)而不是长度(df)。我认为后者只适用于这个例子,因为行数等于列数。如果你可以确认我在这里是正确的,那么我会把它作为答案 – pssguy