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