[英]Adding set column values as min/max error bars on R
抱歉,是否曾經有人問過這個問題,但是很難找到答案。
我下面有以下數據集。 在R中,我想為AvgRead
和AvgUniq
構造PV1
和PV2
的AvgUniq
。 對於誤差線,我想將MinRead
和MinUniq
設置為最小值,將MaxRead
和MaxUniq
為最大值。
如果您能提供幫助,將不勝感激。 再次道歉,如果以前已經問過這個問題。
AvgRead MinRead MaxRead AvgUniq MinUniq MaxUniq
PV1 20 10 40 40 20 80
PV2 40 20 80 80 40 160
您需要使用dcast()
的melt()
和dcast()
函數對數據進行一些reshape2
:
library(reshape2)
library(ggplot2)
df <- data.frame(
row.names = c("PV1", "PV2"),
AvgRead = c(20, 40),
MinRead = c(10, 20),
MaxRead = c(40, 80),
AvgUniq = c(40, 80),
MinUniq = c(20, 40),
MaxUniq = c(70, 160)
)
df$name <- row.names(df)
df_molten <- melt(df)
df_molten$var1 <- substr(df_molten$variable, 1, 3)
df_molten$var2 <- substr(df_molten$variable, 4, 10000)
df_cast <- dcast(df_molten, name + var2 ~ var1, value.var = "value")
ggplot(data = df_cast, aes(x = name, y = Avg, fill = var2)) +
geom_bar(stat = "identity", position = "dodge") +
geom_errorbar(
aes(ymin = Min, ymax = Max),
width = 0.5,
size = 1.3,
position = position_dodge(0.9)
)
編輯:要更改條形的順序,您需要將var2更改為因子並相應地對級別進行排序:
df_cast <- dcast(df_molten, name + var2 ~ var1, value.var = "value")
df_cast$var2 <- factor(df_cast$var2, levels = c("Uniq", "Read"))
ggplot(data = df_cast, aes(x = name, y = Avg, fill = var2)) +
geom_bar(stat = "identity", position = "dodge") +
geom_errorbar(
aes(ymin = Min, ymax = Max),
width = 0.5,
size = 1.3,
position = position_dodge(0.9)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.