如何绘制类别变量的面积图

时间:2019-03-29 13:04:30

标签: r ggplot2

以下是我的要求的两个可复制的最小示例。

  1. 在第一个变量中,x是一个因子变量,我发现函数geom_area不起作用,其工作方式类似于geom_segment的输出。
  2. 在第二个示例中,我将x变量从factor转换为interger,函数geom_area可以使用,但是我发现axis.text.y标签不是我想要的。

有人知道要解决吗?

suppressMessages(library(tidyverse))
mtcars %>% 
    rownames_to_column('index1') %>% 
    mutate(index1 = index1 %>% as.factor) %>% 
    mutate(index2 = index1 %>% as.integer) -> df

df %>% 
    ggplot() +
    geom_area(aes(x = index1, y = mpg), color = 'black', fill = 'black') +
    coord_flip()

enter image description here

df %>% 
    ggplot() +
    geom_area(aes(x = index2, y = mpg), color = 'black', fill = 'black') +
    coord_flip()

enter image description here

1 个答案:

答案 0 :(得分:1)

检查此解决方案:

library(tidyverse)
library(wrapr)

df %.>% 
  ggplot(data = .) +
  geom_area(aes(x = index2, y = mpg), color = 'black', fill = 'black') +
  coord_flip() +
  scale_x_continuous(
    breaks = .$index2,
    labels = .$index1
  )