我有以下資料集:
資料:
test <- data.frame(
cluster = c("1", "2", "3","1", "2", "3","1", "2", "3",),
variable = c("age", "age", "age", "speed", "speed", "speed", "price","price","price",),
value = c(0.33,0.12,0.98,0.77,0.7,0.6,0.11,0.04,0.15))
test$variable <- factor(test$variable, levels = c("age","speed","price"))
代碼
test %>%
ggplot(aes(x = cluster, y = value ,fill = variable ,group = (cluster)))
geom_col(position = "stack", color = "black", alpha = .75)
coord_flip()
我嘗試通過變數中的值對條形圖進行排序,例如“年齡”。這是我用來可視化圖表的代碼,我已經嘗試了 order 函式,但這在“fill”中似乎是不可能的爭論。
認為問題在于,“年齡”本身只是“變數”的一個值。

它應該如下所示:

是否有可能用 ggplot 顯示這樣的東西,還是我需要另一個包?
uj5u.com熱心網友回復:
您已經調整了 的level順序variable,這將影響每個條中填充顏色的順序。要更改您映射的軸的順序x = cluster,我們需要調整 的級別順序cluster。作為一次性,您可以手動執行此操作。回應式地做它需要更多的作業:
手動:
test$cluster = factor(test$cluster, levels = c(2, 1, 3))
計算正確的順序:
library(dplyr)
level_order = test %>%
filter(variable == "age") %>%
group_by(cluster) %>%
summarize(val = sum(value), .groups = "drop") %>%
arrange(val) %>%
pull(cluster)
test = mutate(test, cluster = factor(cluster, levels = level_order))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/380637.html
上一篇:如何將串列串列作為列保存到R中的data.frame物件中
下一篇:在整個XTS物件串列上使用函式
