更新时间:2023-11-26 12:51:52
您需要重新排列总和
函数,否则它默认使用 mean
函数。然后,我在 amount
前面放置了一个 -
以使订单逆转。
p = ggplot(data = hp)
p + geom_bar(binwidth = 0.5,stat =identity)+#
aes x = reorder(class,-amount,sum),y = amount,label = amount,fill = year)+
theme()
I have problem in sorting x axis by y value in ggplot2: here is the code below
#Data
hp=read.csv(textConnection(
"class,year,amount
a,99,100
a,100,200
a,101,150
b,100,50
b,101,100
c,102,70
c,102,80
c,103,90
c,104,50
d,102,90"))
hp$year=as.factor(hp$year)
#Plotting
p=ggplot(data=hp)
p+geom_bar(binwidth=0.5,stat="identity")+ #
aes(x=reorder(class,amount),y=amount,label=amount,fill=year)+
theme()
Here is the result:
How do I sort my x axis by a c b d, which amount sorted by decreasing from 450, 290, 150, 90. What should I do?
You need to give reorder the sum
function, otherwise it defaults to using the mean
function. Then, I put a -
in front of amount
to get the order reversed.
p=ggplot(data=hp)
p+geom_bar(binwidth=0.5,stat="identity")+ #
aes(x=reorder(class,-amount,sum),y=amount,label=amount,fill=year)+
theme()