R ggplot条形图

时间:2013-06-06 19:05:50

标签: r ggplot2 bar-chart

请考虑以下代码:

d <- data.frame(y = sample(LETTERS[1:8]), x = c(-1.6,-1.4,-1.2,0,0,1.2,1.3,1.4), stringsAsFactors = FALSE)

ggplot(d, aes(y=x, x=y)) + geom_bar() + coord_flip()

有人能告诉我如何强制ggplot按字母顺序对数据进行排序吗?我使用了stringsAsFactors = FALSE,因此我的字符不是factor类型。此外,为什么我必须将x和y从aes(y=y, x=x)交换到aes(y=x, x=y)我的y数据是否与y轴一起绘制?这是因为我使用的coord_flip()选项吗?

1 个答案:

答案 0 :(得分:0)

这是一种解决方法:

ggplot(d, aes(y=x, x=factor(y, levels=y))) + ...

轴是按字母顺序排列的原因是geom_barx变量转换为factorlevels的默认factor将按字母顺序排列,因此您需要告诉R不这样做。

coord_flip的原因是geom_barx变量视为bin,将y变量视为值。