pdf элементы нулевого размера, видимые с помощью ggsave - PullRequest
2 голосов
/ 12 января 2012

У меня проблема с тем, что цвета заливки элементов, которых нет, появляются в верхней части столбцов с накоплением при сохранении в формате PDF. Эти элементы не отображаются в окне графика в R или при сохранении в формате PNG.

Пример:

library(ggplot2)
dat <- data.frame(prop.table(xtabs(~class+cyl,mpg),1))
qplot(class,Freq,data=dat,geom="bar",fill=relevel(cyl,4))+scale_fill_brewer(palette="Blues")
ggsave("test.pdf")

Тонкая темно-синяя линия появляется в верхней части столбца «2-местный», которая, кажется, остается одинаковой толщины на экране независимо от масштаба. Я предполагаю, что это ошибка PDF, а не ошибка ggplot2 но есть ли способ избежать этого?

Редактировать

> sessionInfo()
R version 2.12.2 (2011-02-25)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United Kingdom.1252 
[2] LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
[1] ggplot2_0.8.9 proto_0.3-9.2 reshape_0.8.4 plyr_1.6     

loaded via a namespace (and not attached):
[1] digest_0.5.0       RColorBrewer_1.0-5 tools_2.12.2 

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Проблема, по-видимому, связана с комбинациями class*cylynder, которые имеют нулевые частоты, как первая строка в показанном здесь кадре данных:

library(ggplot2)
dat <- data.frame(prop.table(xtabs(~class+cyl,mpg),1))
head(dat, 3)
#     class cyl      Freq
# 1 2seater   4 0.0000000
# 2 compact   4 0.6808511
# 3 midsize   4 0.3902439

Если вы удалите строки с помощью Freq==0, а затем построите график, проблемная линия исчезнет:

dat2 <- subset(dat, Freq>0)
qplot(class, Freq, data=dat2, geom="bar", fill=relevel(cyl,4)) +
      scale_fill_brewer(palette="Blues")
ggsave("test.pdf")
1 голос
/ 24 марта 2012

У меня та же проблема (в Linux): нулевые значения в гистограммах отображаются в виде тонкой черной линии в средствах просмотра PDF.

Я мог бы частично решить ее, сохранив, используя cairo_pdf() вместо pdf().

На дисплее с Sumatra или Evince он больше не отображается, но в PDF X-change Viewer он все еще отображается.Это работает и для вашего примера кода.

Редактировать: использование tikzDevice решает проблему во всех средствах просмотра.Затем можно создать PDF с pdflatex и т. Д.

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