Как уменьшить область, сохраненную с помощью ggsave

#r #dictionary #ggplot2 #plot #tidyverse

#r #словарь #ggplot2 #график #tidyverse

Вопрос:

Допустим, я использую следующий код для создания следующего графика, сохраненного с помощью ggsave :

 library(tidycensus)
library(tidyverse)
library(RColorBrewer)
options(tigris_use_cache = TRUE)

data0 <- get_acs(geography = "county",
                 variables = c(total="B15003_001", phd="B15003_025"),
                 year = 2017, geometry = TRUE, keep_geo_vars=TRUE)

data <- data0 %>% filter(STATEFP!="15"amp;STATEFP!="02"amp;STATEFP!="72") %>%
    select(-moe) %>%
    spread(variable, estimate) %>%
    mutate(estimate = 100*(phd/total)) %>%
    arrange(estimate)
data$GEOID <- as.integer(data$GEOID)


a <-ggplot()  
    geom_sf(data = data, aes(fill = cut(estimate, c(0, 1, 2, 4, 20), include.lowest = TRUE)),
            size=.005, show.legend = FALSE)   
    scale_fill_brewer(type="seq", palette="RdYlGn", name="Percent", direction=-1)  
    theme_bw()  [![enter image description here][1]][1] 
    theme(panel.background = element_rect(fill = 'white'))  
    theme(panel.grid = element_blank(),axis.title = element_blank(),
          axis.text = element_blank(),axis.ticks = element_blank(),
          panel.border = element_blank()) 
ggsave(a, filename="phd_per.png",width=6,height=3.3,units='in',dpi=400, bg="gray")
  

введите описание изображения здесь

Мой вопрос в том, как я могу сохранить ее, чтобы вокруг изображения не было лишнего пробела?

Я подозреваю, что происходит то, что она включает сетку, которая, конечно, мне не нужна, потому что я сделал ее полностью белой. Когда я удаляю этот код:

 theme(panel.background = element_rect(fill = 'white'))          
theme(panel.grid = element_blank(),axis.title = element_blank(),
          axis.text = element_blank(),axis.ticks = element_blank(),
          panel.border = element_blank())  
  

Я получаю это изображение:

введите описание изображения здесь

Я хочу что-то вроде (кроме меток сетки):

введите описание изображения здесь

ОБНОВЛЕНИЕ на основе комментария.

Вот еще один пример, для которого не требуется ключ переписи. Все вышеуказанные пункты остаются неизменными:

 nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
b <- ggplot(nc)  
    geom_sf(aes(fill = AREA))
ggsave(b, filename="nc.png",width=5.35,height=2.1,units='in',dpi=400, bg="gray")
  

введите описание изображения здесь

Комментарии:

1. Не могли бы вы отредактировать свой вопрос, чтобы включить примеры данных, для доступа к которым не требуется ключ API. В противном случае сложно протестировать и помочь вам.

2. Я не могу точно сказать, что вы пытаетесь сделать. Может быть, вы просто хотите theme_void() , а затем также используете expand = c(0,0) с scale_x_continuous() и scale_y_continuous()

3. Я обновил другой пример, для которого не требуется ключ переписи.

4. Ваше решение работает хорошо. Спасибо!