Как оставить только столбец в gglot без пробелов? - PullRequest
1 голос
/ 09 апреля 2020

Я создал диаграмму следующим образом:

enter image description here

Я хотел бы удалить белые пробелы и оставить только столбец.

enter image description here

Мой код:

 ggplot(melt(livechat_data())[c(8,9),],aes(x='',
                                            y=as.integer(value)
                                            ,fill=factor(variable, levels=c("nie","tak" )))) +
          geom_col(position='stack',width = .3) +
          coord_flip()+
          theme_minimal()+
          labs(x = "", y = "konwersja%",fill="Wysłano płatne zapytanie") +
          scale_y_continuous(labels = comma)+
          theme( plot.title=element_text(size=15,face="bold"),
                 axis.text=element_text(size=15),
                 axis.title=element_text(size=15,face="bold"),
                 text=element_text(size=15),
                 legend.position = 'bottom')+
          scale_fill_manual(values = c("tak" = '#00cc00',
                                       "nie" = '#737373'))

1 Ответ

1 голос
/ 09 апреля 2020

Как говорили некоторые другие, вы можете взять строку scale_y_continuous и добавить expand=c(0,0), чтобы убрать пространство вокруг оси y. В вашем случае это не сработает, потому что ваши данные перевернуты: вам нужно использовать scale_x_continuous. Ниже приведен пример с фиктивными данными, чтобы лучше и нагляднее проиллюстрировать этот момент:

df <- data.frame(x=c(0,0), y=c(20, 80), sam=c('This', 'That'))
p <- ggplot(df, aes(x=x,y=y)) + geom_col(aes(fill=sam)) +coord_flip()
p

enter image description here

Coord_flip () + scale_x_continuous (развернуть = c (0,0)) удаляет пробелы TOP и BOTTOM

p + scale_x_continuous(expand=c(0,0))

enter image description here

Coord_flip () + scale_y_continuous (expand = c (0,0)) удаляет ВЛЕВО и ВПРАВО пробелы

p + scale_y_continuous(expand=c(0,0))

enter image description here

Соедините их вместе , и вы получите это:

p + scale_x_continuous(expand=c(0,0)) + scale_y_continuous(expand=c(0,0))

enter image description here

Больше нет границ или пробелов. Таким образом, хотя вы упомянули, что пытались scale_y_continuous(expand=c(0,0)), вы должны быть в состоянии сказать сверху, что это не сработает для удаления «верхнего» и «нижнего» пробелов в вашем графике: оно удалит только пробелы слева и справа. Как и в примере, который я разместил, ваш график переворачивается с coord_flip(), поэтому вам нужно scale_x_continuous.

...