R ggplot根据两类行的最大值绘制条形图顺序
我到处找了找,找到了 ,但我无法找到以下问题的有效解决方案 我有这样一个数据帧:R ggplot根据两类行的最大值绘制条形图顺序,r,sorting,ggplot2,bar-chart,R,Sorting,Ggplot2,Bar Chart,我到处找了找,找到了 ,但我无法找到以下问题的有效解决方案 我有这样一个数据帧: df <- data.frame(name = rep(c("a","b","c"), each=2), measure_type = rep(c("n1","n2"),3), value=c(20,1,3,3,17,9)) > df name measure_type value 1
df <- data.frame(name = rep(c("a","b","c"), each=2), measure_type = rep(c("n1","n2"),3), value=c(20,1,3,3,17,9))
> df
name measure_type value
1 a n1 20
2 a n2 1
3 b n1 3
4 b n2 3
5 c n1 17
6 c n2 9
产生:
我想用n1的最小值来确定减淡条形图的顺序
谢谢您的帮助。您可以按
值进行排序,然后将名称的排序顺序设置为名称的排序顺序度量值类型==“n1”
。这一切都可以使用dplyr
管道动态完成:
library(dplyr)
ggplot(df %>% arrange(value) %>%
mutate(name=factor(name, levels=name[measure_type=="n1"])),
aes(x = name, y = value, fill = measure_type)) +
geom_bar(stat = "identity", position=position_dodge())
为了澄清,您希望您的x轴被安排为:B C A?是的,没错,但我的原始数据有三个以上的“名称”。
library(dplyr)
ggplot(df %>% arrange(value) %>%
mutate(name=factor(name, levels=name[measure_type=="n1"])),
aes(x = name, y = value, fill = measure_type)) +
geom_bar(stat = "identity", position=position_dodge())