2016-08-03 3 views
2

Я хочу удалить белую рамку в файле .png, используя ggplot2. Я использую Windows 10 с Rstudio, ggplot2 и geom_raster. После того, как проводить время поиска на форумах, и играть с некоторыми параметрами, я закончил с этим кодов (которые до сих пор не работает):Удалить границу в ggplot2

library(ggplot2) 
library(datasets) 

png(file = "Out.png") 

par(mar=rep(0, 4), plt=c(0.1,0.9,0.1,0.9), xpd=NA) 

ggplot(faithfuld, aes(waiting, eruptions)) + 
geom_raster(aes(fill = density))+ 
theme(axis.line  = element_blank(), 
     axis.text  = element_blank(), 
     axis.ticks  = element_blank(), 
     axis.title  = element_blank(), 
     panel.background = element_blank(), 
     panel.border  = element_blank(), 
     panel.margin = unit(0,"null"), 
     legend.position = "none", 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     plot.background = element_blank(), 
     plot.margin = rep(unit(0,"null"),4)) 

dev.off() 

Этот код дает этот PNG:

enter image description here

+0

Некоторые ответы здесь: [как-Do-I-Удаление поля Окружающие-заместитель сюжетно-AREA] (http://stackoverflow.com/questions/ 31254533/if-use-ggplot-in-r-how-do-i-remove-margins-around-the-plot-area/31256788 # 31256788) –

+0

и здесь: [тема ggplot2 без осей или сетки] (http: //stackoverflow.com/questions/14313285/ggplot2-theme-with-no-axes-or-grid). – cuttlefish44

+0

Спасибо за ваши разные ссылки на похожие случаи. После некоторых попыток кажется, что в этом случае работал только тот, который был предоставлен Floo с использованием пакета cowplot (возможно, из-за версий geom_raster или пакета). –

ответ

1

Даже когда это немного Hacky вы можете использовать cowplot -package для достижения этой цели следующим образом:

library(ggplot2) 
library(datasets) 
require(cowplot) 
base <- ggplot(faithfuld, aes(waiting, eruptions)) + 
    geom_raster(aes(fill = density)) + 
    theme_nothing() + labs(x = NULL, y = NULL) 
plot_grid(base, scale=1.1) 

- theme_nothing() + labs(x = NULL, y = NULL) - это короткая ручка за то, что вы сделали с theme(...)
- plot_grid(..., scale=1.1) - важная деталь, поскольку она изменяет размеры участка, чтобы пересечь белую границу.

Это дает:

enter image description here

+0

Hi Floo, да, это работает. Как вы разобрались в 1.1. Просто добавьте информацию: она будет работать, если мы не будем использовать легенду. Но это достаточно хорошо! Огромное спасибо. –

Смежные вопросы