按R中的y值重新排序列?

时间:2017-02-17 03:16:43

标签: r ggplot2 geom-bar

我的数据框结构如下:

> head(df)
    Zip Crimes Population    CPC
1 78701   2103       6841 0.3074
2 78719    186       1764 0.1054
3 78702   1668      21334 0.0782
4 78723   2124      28330 0.0750
5 78753   3472      49301 0.0704
6 78741   2973      44935 0.0662

我正在使用此功能绘图:

p = ggplot(df, aes(x=Zip, y=CPC)) + geom_col() + theme(axis.text.x = element_text(angle = 90))

这是我得到的图表:

p

如何按CPC订购图表,其中最高的邮政编码位于左侧?

2 个答案:

答案 0 :(得分:2)

将Zip转换为按负CPC排序的因子。例如,在绘图之前尝试- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [[UITabBar appearance] setBackgroundColor:[UIColor grayColor]]; // Here you can set the converted color form image, make sure the imageSize fit. } 。这是一个小例子:

df$Zip <- reorder(df$Zip, -df$CPC)

enter image description here

d <- data.frame(
  x = c('a', 'b', 'c'),
  y = c(5, 15, 10)
)

library(ggplot2)

# Without reordering
ggplot(d, aes(x, y)) + geom_col()

enter image description here

答案 1 :(得分:0)

按降序对数据框进行排序,然后绘制它:

library(dplyr)
df <- arrange(df,desc(CPC))
ggplot...