Артефакты белых линий на графиках ggplot2

#r #ggplot2

#r #ggplot2

Вопрос:

(Редактировать: теперь отправлено как выпуск ggplot2 # 4183.)

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

 library(ggplot2)

d = data.frame(x = seq(0, 2, len = 2500))
d$y = d$x^2

ggsave("~/plot.png", width = 3, height = 4, dpi = 90,
    ggplot(d)  
    geom_col(aes(x, y), width = max(diff(d$x)))  
    theme_bw()  
    theme(
        panel.border = element_blank(),
        panel.grid = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.y = element_blank()))
  

С ggplot2 3.3.2 на R 3.6.2 в Linux я получаю это:

Вывод приведенного выше кода

Как мне надежно избежать получения вертикальных белых линий, подобных той, что примерно на x = 0,8 выше?

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

1. Я запустил ваш код и не получил никаких белых линий. Попробуйте обновить ggplot2

2. @Duck Но у CRAN нет более новой версии, чем 3.3.2. Вы запускаете предварительный выпуск?

3. Я заметил, что у нас такая же версия ggplot2_3.3.2 . Единственное, что может вызвать эту проблему, — это конфликт с другими пакетами. Вы можете попробовать повторно запустить R и только загрузить ggplot2 и воспроизвести график!

4. @Duck Я могу воспроизвести ошибку заново R --vanilla .

5. Я получаю ту же строку, используя R 4.0.2 из docker image rocker / geospatial

Ответ №1:

ggplot постановил, что это не будет исправлено, но это можно обойти, увеличив ширину чем-то вроде geom_col(aes(x, y), width = max(diff(d$x)) * 1.05, position = "identity") :

Новый вывод