R中的六边形和热式密度图

R中的六边形和热式密度图,r,ggplot2,geom,R,Ggplot2,Geom,我试图创建一个图像,显示机器相对于温度和湿度的误差。看完一篇论文后(见下图),似乎最好的方法是用六边形或密度图来显示这些错误。我的问题是,每次我创建一个(1)密度图时,它都会生成一个灰色图,实际上没有显示任何数据(2)一个六边形图,它只显示计数数据 上面的图像与我想要的大致相同,但显然很难解释,因为它有计数数据。我不知道在什么情况下(温度/湿度)会出现错误 ggplot(DM_EPA_1H, aes(x=Relative.humidity,y=Temperature), na.rm = FA

我试图创建一个图像,显示机器相对于温度和湿度的误差。看完一篇论文后(见下图),似乎最好的方法是用六边形或密度图来显示这些错误。我的问题是,每次我创建一个(1)密度图时,它都会生成一个灰色图,实际上没有显示任何数据(2)一个六边形图,它只显示计数数据

上面的图像与我想要的大致相同,但显然很难解释,因为它有计数数据。我不知道在什么情况下(温度/湿度)会出现错误

ggplot(DM_EPA_1H, aes(x=Relative.humidity,y=Temperature), na.rm = FALSE)+
stat_density_2d(aes(fill=Diff_PM1), geom = "polygon")+
scale_fill_viridis_c()

上面这张图片不是很容易理解,我不确定下一个最佳途径是什么,以获得预期的结果

不幸的是,上面的图片没有任何源代码来说明他们是如何制作这些图片的,因此很难复制。仍然有可能它甚至没有在ggplot中完成,但对我来说,它看起来像是源代码


我感谢你的帮助。如果需要进一步澄清,请告知我

使用
stat\u summary\u hex
geom\u density2d
。使用
stat\u summary\u hex
,您可以指定每个箱子的计算内容,而不是计数;这里我假设你想要平均值,但你基本上可以使用任何函数。另外,由于没有提供任何示例数据,您使它变得有点困难,因此我随机生成了一些示例数据

库(tidyverse)
种子集(0)
DM_EPA_1H=tibble(相对湿度=(rbeta(1000,6,1.3))*100,温度=rnorm(1000,平均值=50,标准差=10),差异PM1=rnorm(1000,平均值=0,标准差=5))
ggplot(DM_EPA_1H,映射=aes(x=相对湿度,y=温度))+
stat_summary_hex(mapping=aes(z=Diff_PM1),fun=~mean(.x))+
刻度填充步骤2(低=“#eb0000”,中=“#E0”,高=“#1094c4”)+
geom_hex(stat=“identity”)+
geom_density2d(颜色=“黑色”)+
几何点(尺寸=0.5)
这大致复制了原始绘图:


当然,如果你想使用
viridis
正如你在第二个代码示例中所指出的那样,你也可以使用
scale_fill_viridis_c
而不是
scale_fill_steps 2

嗨,我很抱歉,我将数据粘贴到了问题中,但它是作为图像上传的。这看起来很棒,我觉得它能满足我的需要。只要想出一个颜色嬉戏,然后我们就可以出发了!谢谢你的帮助!
ggplot(DM_EPA_1H, aes(x=Relative.humidity,y=Temperature), na.rm = FALSE)+
stat_density_2d(aes(fill=Diff_PM1), geom = "polygon")+
scale_fill_viridis_c()