gpt4 book ai didi

r - ggplot2 stat_binhex() : keep bin radius while changing plot size

转载 作者:行者123 更新时间:2023-12-02 05:30:45 25 4
gpt4 key购买 nike

我想找到一种方法,在调整 ggplot2 中的 hexbin 图大小时保持规则六边形(所有边都具有相等的长度),而无需手动调整 binwidth 参数。

举例说明:

d <- ggplot(diamonds, aes(carat, price))+ 
stat_binhex(colour="white")
try(ggsave(plot=d,filename=<some file>,height=6,width=8))

产生至少看起来规则的六边形:ggplot2 stat_binhex plot1

还有

try(ggsave(plot=d,filename=<some other file>,height=6,width=12))

产生不规则六边形:ggplot2 stat_binhex plot2

documentation描述 binwidth 参数(例如 binwidth = c(1, 1000)),它指定 bin 宽度。我想要一个函数,当给定任何绘图大小时,它返回正确的 binwidth 设置以创建规则的六边形。

最佳答案

您的选择是使用适当的比例设置coord_fixed,以便绘图不会超出图形设备的尺寸

在这种情况下,5/17000 显得合理

d <- ggplot(diamonds, aes(carat, price))+ 
stat_binhex(colour="white") + coord_fixed(ratio = 5/17000)

另一个选项是根据设备尺寸的比例来创建坐标尺寸的 binwidths 和比例。

除非坐标比是固定的(按照我的第一个示例),否则您不能期望将相同的绘图拉伸(stretch)到 1.5 倍宽的窗口中,而绘图看起来不会被拉伸(stretch)。

因此,如果您将宽度拉伸(stretch) 1.5 倍,则将 x 维度的 binwidth 减小 1.5 倍

d <- ggplot(diamonds, aes(carat, price))+ 
stat_binhex(colour="white",bin.widths = c((5/45),17000/30 ))

关于r - ggplot2 stat_binhex() : keep bin radius while changing plot size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13150868/

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