在ggplot2茎图中布置条形图

时间:2019-04-11 11:38:15

标签: r ggplot2 dplyr

我正在尝试将此茎图中的条形从最长到最短进行排列。这个https://www.r-graph-gallery.com/301-custom-lollipop-chart/建议我可以在将管道插入图形之前使用ranging函数。我无法重现他们的例子。这些条以某种随机顺序结束。知道arrange为什么不起作用

 mtcars %>%
 mutate(mpg = as.numeric(mpg)) %>%
 mutate(x = factor(rownames( mtcars))) %>%
 arrange(mpg) %>%
 ggplot( aes(x=x, y=mpg)) +
    geom_segment( aes(x=x, xend=x, y=0, yend=mpg), color="skyblue", size=1) +
    geom_point( color="blue", size=4, alpha=0.6) +
    theme_light() +
    coord_flip()

2 个答案:

答案 0 :(得分:2)

也许在创建x变量之前先按mpg进行排列。

 mtcars %>%
 mutate(mpg = as.numeric(mpg)) %>%
 arrange(mpg) %>%
 mutate(x = factor(rownames( mtcars), levels = rownames( mtcars))) %>%
    ggplot( aes(x=x, y=mpg)) +
    geom_segment( aes(x=x, xend=x, y=0, yend=mpg), color="skyblue", size=1) +
    geom_point( color="blue", size=4, alpha=0.6) +
    theme_light() +
    coord_flip()

答案 1 :(得分:2)

我正在手机上快速编写此答案,因此请原谅我没有可测试的代码,但是您需要更改因子的顺序,而要安排数据帧。