r - R 中的订单条形图

标签 r ggplot2

我正在尝试在 R 中绘制以下数据集:

fruit<-matrix(c("Apple","186","Banana","93","Elderberry","48","Durian", "28","Cherry", "28"),ncol=2,byrow=TRUE)
colnames(fruit) <- c("Name","Freq")
fruit <- data.table(fruit)
fruit$Freq  <- as.numeric(as.character(fruit$Freq))
qplot(fruit$Name, fruit$Freq, geom="bar", stat="identity") + coord_flip()

但它是按字母顺序绘制的

enter image description here

我希望条形图显示从最高频率值到最低频率值的水果。所以 Apple 位于 Y 轴顶部,然后是 Banana,等等...:

 Apple       186
 Banana      93
 Elderberry  48
 Durian      28
 Cherry      28

我尝试过使用因素和级别,但无法弄清楚。

最佳答案

使用reorderFreq排序Name:

ggplot(fruit, aes(reorder(Name, Freq), Freq)) + 
   geom_bar(fill=hcl(195,100,65), stat="identity") + coord_flip() +
   xlab("Fruit") + ylab("Frequency")

enter image description here

如果您想要Name的任意顺序,您可以使用factor手动完成:

fruit$Name = factor(fruit$Name, 
                    levels=c("Banana", "Durian", "Elderberry", "Apple", "Cherry"))

# Now ggplot will plot the bars in the order listed in the factor command
ggplot(fruit, aes(Name, Freq)) + geom_bar(stat="identity") + coord_flip()

最后一件事:您可以使用更少的代码创建数据框。例如:

fruit = data.frame(Name=c("Apple","Banana", "Elderberry", "Durian", "Cherry"),
                   Freq=c(186, 93, 48, 28, 28))

关于r - R 中的订单条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171411/

相关文章:

sorting - 字符串排序时不要忽略大小写

r - 如果我在分段函数(ggplot2)上从 >= 更改为 >,为什么我的连续图会突然发生变化?

r - 将 100 个数据帧合并为一个数据帧的函数

r - 用组内相同的值填充缺失值(将已知的 IMEI 与缺失的手机型号匹配)

r - 用文本 : ggplot2 标记最小和最大比例填充渐变图例

r - 将额外的图插入多面网格,ggplot2

r - 计算均值时处理 NaN

r - 调整ggplot2中堆叠geom_bar的y轴原点

r - ggplot2 中不同的 geom_point 形状以因子为条件

r - 更改基本几何图中的颜色