簡體   English   中英

在R中訂購2 bar圖

[英]Ordering a 2 bar plot in R

我有一個如下的數據集,並且按照上一個問題的建議,使用下面的代碼創建了一個圖形。 我想做的是按排名而不是團隊名稱對杠進行排序。 在ggplot中可以做到嗎?

Team Names  PLRankingsReverse   Grreserve

Liverpool   20  20
Chelsea 19  19
Manchester City 15  18
Arsenal 16  17
Tottenham   18  16
Manchester United   8   15
Everton 10  14
Watford 13  13
Burnley 17  12
Southampton 9   11
WBA 11  10
Stoke   4   9
Bournemouth 12  8
Leicester   7   7
Middlesbrough   14  6
C. Palace   6   5
West Ham    1   4
Hull    3   3
Swansea 5   2
Sunderland  2   1

這是代碼:

alldata <- read.csv("premierleague.csv")
library(ggplot2)
library(reshape2)
alldata <- melt(alldata)
ggplot(alldata, aes(x = Team.Names, y= value, fill = variable), xlab="Team   Names") +
geom_bar(stat="identity", width=.5, position = "dodge") 

謝謝您的幫助!

在這種情況下,您需要先對數據框進行排序,然后再融化並捕獲訂單。 然后,您可以使用它在scale_x_discrete上設置限制順序,也可以在aes字符串中考慮Team Name

使用因素:

ordr <- order(alldata$`Team Names`, alldata$PLRankingsReverse, decreasing = TRUE)

alldata <- melt(alldata)

ggplot(alldata, aes(x = factor(`Team Name`, ordr),  y = value, fill = variable) + 
  labs(x = "Team Name") +
  geom_bar(stat = "identity", width = .5, position = "dodge") 

使用scale_x_discrete:

ordr <- alldata$`Team Name`[order(alldata$PLRankingsReverse, decreasing = TRUE)]

alldata <- melt(alldata)

ggplot(alldata, aes(x = `Team Name`, y = value, fill = variable) + 
  labs(x = "Team Name") +
  geom_bar(stat = "identity", width =. 5, position = "dodge") +
  scale_x_discrete(limits = ordr) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM