我有用于觀察的兩個資料點的資料(由 中的唯一pty/time組合表示res),我想將其繪制為條形圖。
考慮這個玩具資料:
df <- data.frame(pty = c("A","A","B","B","C","C"),
print_col = c("#FFFF00", "#FFFF00", "#000000", "#000000", "#ED1B34", "#ED1B34"),
time = c(2020,2016,2020,2016,2020,2016),
res = c(20,35,30,35,40,45))
我正在使用ggplot(df) geom_bar(aes(pty, res , fill = as.factor(pty), group=as.factor(time)), position = "dodge", stat = "summary" , fun = "mean")以下結果(如下)來繪制它。

但是,我想改變兩點:
- 著色:(i)條形顏色應取自
print_col相應行的列和(ii)對于time==2016,我想要一個alpha值.5以提高可讀性。 - 傳說:
fill傳說是不必要的。相反,我想要圖例group(即“時間”作為標題,“2020”/“2016”作為條目)。
我想不出一種方法來實作這些 - 有人能指出我正確的方向嗎?
uj5u.com熱心網友回復:
添加 alpha 就像將列映射到alpha美學一樣簡單,默認情況下會為您提供圖例。使用fill = I(print_col)自動設定“身份”填充比例,默認情況下隱藏圖例。
library(ggplot2)
df <- data.frame(pty = c("A","A","B","B","C","C"),
print_col = c("#FFFF00", "#FFFF00", "#000000", "#000000", "#ED1B34", "#ED1B34"),
time = c(2020,2016,2020,2016,2020,2016),
res = c(20,35,30,35,40,45))
ggplot(df)
geom_bar(aes(pty, res, fill = I(print_col), group = time,
alpha = as.factor(time)),
position = "dodge", stat = "summary", fun = "mean")
# You can tweak the alpha values with a scale
scale_alpha_manual(values = c(0.3, 0.7))

由
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/443284.html
上一篇:用折線圖繪制閃避條形圖
