R 如何使用geom_hex在两个绘图之间创建一致的色标
我试图在两个图之间做一个前后比较,所以我需要它们都有相同的色阶,这样才能进行真正的比较。我已经尝试了一段时间来改变geom_hex的颜色比例,但我只找到了提供最小/最大截止值的方法。是否可以手动将刻度设置为定义的范围,例如1-100?下面是我的绘图代码和示例R 如何使用geom_hex在两个绘图之间创建一致的色标,r,ggplot2,data-visualization,hexagonal-tiles,R,Ggplot2,Data Visualization,Hexagonal Tiles,我试图在两个图之间做一个前后比较,所以我需要它们都有相同的色阶,这样才能进行真正的比较。我已经尝试了一段时间来改变geom_hex的颜色比例,但我只找到了提供最小/最大截止值的方法。是否可以手动将刻度设置为定义的范围,例如1-100?下面是我的绘图代码和示例 ggplot() + geom_hex(aes(x=VolumeBefore$Flow, y=SpeedBefore$Speed)) + xlab("Flow") + ylab("Speed (MPH)")+ theme(leg
ggplot() +
geom_hex(aes(x=VolumeBefore$Flow, y=SpeedBefore$Speed)) +
xlab("Flow") + ylab("Speed (MPH)")+
theme(legend.justification=c(1,0), legend.position=c(1,0), text = element_text(size = 20)) +
ggtitle('Speed-Flow Before Density Plot')
ggplot() +
geom_hex(aes(x=VolumeAfter$Flow, y=SpeedAfter$Speed)) +
xlab("Flow") + ylab("Speed (MPH)")+
theme(legend.justification=c(1,0), legend.position=c(1,0), text = element_text(size = 20)) +
ggtitle('Speed-Flow After Density Plot')
在这两张图片中,您可以看到比例不同,我只想让它们相同:)
谢谢 这里有一种使用
scale\u fill\u gradient2
和oob=scales::squish
的方法,可以指定填充的上下限范围,并限制超出该范围的任何值
请注意,如果没有规范,填充将使用数据中的全部密度范围:
ggplot(diamonds) +
geom_hex(aes(x=carat,y=price)) +
scale_fill_gradient2()
我们可以交替地直接指定范围,将超出范围的任何内容钳制在该范围内。这将允许您匹配多个绘图的图例范围:
ggplot(diamonds) +
geom_hex(aes(x=carat,y=price)) +
scale_fill_gradient2(limits = c(0, 3000), oob = scales::squish)
我不确定你所说的最大/最小值是什么意思,但是在
比例填充连续()中设置极限=c(1100)
应该可以实现你所描述的。(旁注:永远不要用$
引用aes()
中的变量;始终执行ggplot(data=volumebeefore),aes(x=Flow,y=Speed)
)非常感谢@joran提供的信息,这很好!太棒了,这正是我需要的,它工作得非常好!您也可以使用“缩放、填充、连续”来执行相同的操作。