R ggplot2:了解点大小
我试图理解ggplot/grid如何确定要渲染的点大小。(来自哈德利的评论)描述了R ggplot2:了解点大小,r,ggplot2,R,Ggplot2,我试图理解ggplot/grid如何确定要渲染的点大小。(来自哈德利的评论)描述了.pt幻数常量的作用,但我看不出这些数字是如何加起来的。这表明: # empty ggplot obj with no margins outside panel p0 = ggplot() + scale_size_identity() + scale_y_continuous(expand = c(0,0)) + scale_x_continuous(expand = c(0,0)) + theme(a
.pt
幻数常量的作用,但我看不出这些数字是如何加起来的。这表明:
# empty ggplot obj with no margins outside panel
p0 = ggplot() + scale_size_identity() +
scale_y_continuous(expand = c(0,0)) + scale_x_continuous(expand = c(0,0)) +
theme(axis.text = element_blank(), panel.grid = element_blank(),
panel.border = element_rect(colour='black', fill='transparent'),
panel.spacing = unit(0, 'mm'), axis.ticks.length = unit(0, "mm"),
plot.margin=unit(c(0,0,0,0), "mm")) + labs(x=NULL, y=NULL)
# 2 data points plus 2 corner points to define bbox ('limits' args seem to force extra margins)
d = data.frame(x = 1:4, y = c(100,150,250,300), sz = c(0,76.15,76.15,0))
p = p0 + geom_point(data=d, aes(x, y, size=sz), fill='red', stroke=0, shape=22, alpha=.8)
# output to pdf and open
fn='test.pdf'; ggsave(p, filename = fn, w=6, h=4, units = "in"); browseURL(fn)
通过反复试验,我得到了76.15码的尺码。这个尺寸让两个正方形的点刚好接触,但我不明白为什么。绘图宽度为6英寸=152.4毫米。要满足要求,这些点必须为2英寸宽=50.8mm。但是我看不出76.15的大小如何通过.pt
乘数(2.845276)映射到50.8mm
非常感谢您的建议。我应该补充一点,当使用
shape=15
而不是22时,相同结果的点大小是67.15
,但我不确定这是否能让我们更接近答案。您可能会发现这条旧线索有用:
基本上:计算点形状大小的唯一可用参考是源代码()
形状0,1,4,7,8,10,12,13,14,15,16,18,19,21似乎受到一个按因子0.75缩小的正方形的约束
喵喵叫里普利教授!我同样很难理解上面的内容,除了半径是0.375,SQRC是sqrt(pi/4)
toDeviceWidth
行(result=(result/dd->dev->ipr[0])/fabs(dd->dev->right-dd->dev->left);
)超出了我的范围。你的ggplot2点想法有什么用吗?IIRC我确实用正多边形制作了一个几何图形(在所谓的ggExtra包中,现已退役),但它不是非常有用。干杯,伙计。我想就我目前的目的而言,我会假设一个点到英寸的乘数是38.075,然后看看结果如何。
case 22: /* squares */
xc = toDeviceWidth(RADIUS * SQRC * GSTR_0, GE_INCHES, dd);
yc = toDeviceHeight(RADIUS * SQRC * GSTR_0, GE_INCHES, dd);
GERect(x-xc, y-yc, x+xc, y+yc, gc, dd);
break;