我是新手,但我正在尝试创建一个聚集的列条形图,看起来像这样,我可以将鼠标悬停在上面并查看值:
为了实现这一点,这是我到目前为止所做的,但我不知道如何继续以获得上面显示的所需输出(这只是从基础条形图中得到):
A <- c(.32, 1.89, 12.9, 51.85, 29.96)
B <- c(1.06, 2.65, 21.27, 47.34, 27.65)
C <- c(.96, 3.85, 18.32, 51.44, 25.401)
matrixValueData <- as.data.frame(rbind(A, B, C))
plotly::plot_ly(matrixValueData, x = colnames(matrixValueData), y = A, type = 'bar')
任何帮助表示赞赏!谢谢!
答案 0 :(得分:2)
这是一个开始:
首先,为Rating
创建一个有序因子向量:
Rating <- c("Very Poor Value", "Poor Value", "Neutral", "Good Value", "Very Good Value")
Rating <- factor(Rating, levels = Rating, ordered = T)
然后,创建data.frame并将其重新整形为长格式:
matrixValueData <- data.frame(A, B, C, Rating) %>%
tidyr::gather(Group, Score, -Rating)
print(head(matrixValueData))
# Rating Group Score
# 1 Very Poor Value A 0.32
# 2 Poor Value A 1.89
# 3 Neutral A 12.90
# 4 Good Value A 51.85
# 5 Very Good Value A 29.96
# 6 Very Poor Value B 1.06
最后,情节:
plot_ly(matrixValueData,
x = ~Rating,
y = ~Score,
color = ~Group,
type = "bar",
marker = list(line = list(color = "black", width = 1)))
您可以分别使用marker
和text
参数进一步操纵条形颜色和悬停文本。 documentation中的更多细节。