当前位置:  开发笔记 > 编程语言 > 正文

ggplot 2.0.0中的磅值

如何解决《ggplot2.0.0中的磅值》经验,为你挑选了2个好方法。

自从我更新到ggplot版本2.0.0后,我无法重新创建一个情节:看起来我不能像以前那样减小点大小,这是一个有很多点的情节中的问题.在下面的例子中,plot1和plot2之间的点大小存在合理的差异,plot3中的点大小至少略小一点,但在plot3和plot4之间,点大小没有差异:

df <- data.frame(x=1:10, y=runif(10))
pl <- ggplot(df) +
    geom_point(aes(x,y), size=1)
ggsave("plot1.png", plot=pl, cm", dpi=1200 )

pl <- ggplot(df) +
    geom_point(aes(x,y), size=0.1)
ggsave("plot2.png", plot=pl, cm", dpi=1200 )

pl <- ggplot(df) +
geom_point(aes(x,y), size=0.01)
ggsave("plot3.png", plot=pl, cm", dpi=1200 )

pl <- ggplot(df) +
geom_point(aes(x,y), size=0.001)
ggsave("plot4.png", plot=pl, cm", dpi=1200 )

在之前版本的ggplot2中,我使用了0.25的点大小,它看起来比现在小,这就是我尝试使用新的ggplot2版本进一步减少它的原因.我是否错过了新版本代码的更改?在文档中找不到任何内容......



1> Matteo De Fe..:

好的,我找到了解决方案.正如@henrik和@silkita所指出的那样,最新的ggplot2版本中默认形状从16变为19.正如您在文档中看到的那样(例如此处),形状"19"略大于"16".但这并不是2.0.0版本中"点"更大的原因.查看geom-point.R最新版本的ggplot2源代码,我们可以看到:

default_aes = aes(
    shape = 19, colour = "black", size = 1.5, fill = NA,
    alpha = NA, stroke = 0.5
  )

在之前的版本中,它是:

default_aes <- function(.) aes(shape=16, colour="black", size=2, fill = NA, alpha = NA)

然后,要像以前一样得到小点,我们应该把stroke它归零.总而言之,要获得最小的点,你应该写:

geom_point(size = 0.1) # ggplot2 before 2.0.0
geom_point(size = 0.1, stroke = 0, shape = 16) # ggplot2 2.0.0

顺便说一句,当使用最小点时,使用不同形状(像素仍然是像素)之间没有区别.

更新:正如Hadley Wickham在推特上指出的那样,这一变化在发行说明中得到了解释



2> Mike Wise..:

尝试使用shape参数:

n <- 10000
df <- data.frame(x=1:n, y=runif(n))
pl <- ggplot(df) +
  geom_point(aes(x,y), size=1,shape=".") + labs(title="shape='.',size=1")
pl

收益率:

在此输入图像描述

而:

pl <- ggplot(df) +
  geom_point(aes(x,y), size=1) + labs(title="size=1")
pl

产量: - (对于所有较小的尺寸都是一样的)

在此输入图像描述

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有