gpt4 book ai didi

r - 使用ggsave可见的pdf零尺寸元素

转载 作者:行者123 更新时间:2023-12-04 06:01:38 35 4
gpt4 key购买 nike

我有一个问题,当保存为 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")

一条深蓝色细线出现在“2seater”列的顶部,无论放大多少,它似乎在屏幕上都保持相同的粗细。我认为这是 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

最佳答案

问题似乎是由于 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")

关于r - 使用ggsave可见的pdf零尺寸元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839990/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com