Как я могу удалить барные границы в geom_histogram, используя устройство pdf - PullRequest
2 голосов
/ 26 июня 2019

У меня проблема только когда я пытаюсь сделать PDF! Не на устройстве по умолчанию или с png!

library(ggplot2)
theme_set(theme_bw())
data(iris)
pdf("test.pdf")
ggplot(iris,aes(x=Sepal.Length)) + geom_histogram()
dev.off()

results from test.pdf

То, что я хочу, это то, что я получаю, если я устанавливаю цвет границы, равный цвету заливки.

pdf("test2.pdf")
ggplot(iris,aes(x=Sepal.Length)) + geom_histogram(color='grey35')
dev.off()

Results from temp2.pdf

Конечно, это решение не будет обобщать, если я изменю цветовые темы или использую эстетику заливки.

1 Ответ

1 голос
/ 26 июня 2019

Вот функция, которая делает цвет границы таким же, как цвет заливки.Это не идеально, но, похоже, работает.

# Load package
library(ggplot2)

# Load data
data(iris)

# Define gap filler function
gap_filler <- function(g){
  # Get ggplot object
  p <- ggplot_build(g)

  # Fix colour to match fill
  p$data[[1]]$colour <- p$data[[1]]$fill

  # Return
  grid::grid.draw(ggplot_gtable(p))
}

# Open PDF device
pdf("test.pdf")

# Create plot
g <- ggplot(iris,aes(x=Sepal.Length)) + geom_histogram()
g <- g + theme_bw()

# Fill gaps & plot
gap_filler(g)
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# Close device
dev.off()
#> png 
#>   2

Создано в 2019-06-25 с помощью пакета Представить (v0.2.1.9000)

И PDF выглядит так:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...