My ggplot bar chart reorder()函数的值为';行不通
我试图将条形图按降序排列(接触率最高的道路组位于顶部)。但是,reorder()函数似乎不起作用My ggplot bar chart reorder()函数的值为';行不通,r,ggplot2,R,Ggplot2,我试图将条形图按降序排列(接触率最高的道路组位于顶部)。但是,reorder()函数似乎不起作用 for (i in uniq_wards) { print(ggplot(data = subset(roads, Ward == i), aes(x = reorder(Roadgroup, Contact.rate), y = Contact.rate, fill = unde
for (i in uniq_wards)
{ print(ggplot(data = subset(roads, Ward == i),
aes(x = reorder(Roadgroup, Contact.rate),
y = Contact.rate,
fill = undecided_rate)) +
geom_col() +
coord_flip() +
labs(fill = "Undecided rate", y = "Contact Rate", x = "Road Group") +
theme(axis.text.x = element_text(angle = 90),
text = element_text(size = 8)) +
scale_fill_gradient(low = "gray", high = "blue", limits=c(0.0, 0.35)) +
ggtitle(i, subtitle = "Contact Rate and Undecided Density"))
}
第二幅图是降序的一个示例,我希望第一个图是这样的,它使用相同的变量axis reorder()代码:
没有数据很难提供帮助。你可以试试下面的方法。我只在您的原始代码中添加了
FUN=sum
。如果不起作用,请提供一些示例数据
library(tidyverse)
for (i in uniq_wards)
{ print(ggplot(data = subset(roads, Ward == i),
aes(x = reorder(Roadgroup, Contact.rate, FUN = sum),
y = Contact.rate,
fill = undecided_rate)) +
geom_col() +
coord_flip() +
labs(fill = "Undecided rate", y = "Contact Rate", x = "Road Group") +
theme(axis.text.x = element_text(angle = 90),
text = element_text(size = 8)) +
scale_fill_gradient(low = "gray", high = "blue", limits=c(0.0, 0.35)) +
ggtitle(i, subtitle = "Contact Rate and Undecided Density"))
}
欢迎来到SO。请看一看。你更有可能得到答案
library(tidyverse)
for (i in uniq_wards)
{ print(ggplot(data = subset(roads, Ward == i),
aes(x = reorder(Roadgroup, Contact.rate, FUN = sum),
y = Contact.rate,
fill = undecided_rate)) +
geom_col() +
coord_flip() +
labs(fill = "Undecided rate", y = "Contact Rate", x = "Road Group") +
theme(axis.text.x = element_text(angle = 90),
text = element_text(size = 8)) +
scale_fill_gradient(low = "gray", high = "blue", limits=c(0.0, 0.35)) +
ggtitle(i, subtitle = "Contact Rate and Undecided Density"))
}