如何删除 geom_raster 中连续 x 值之间的 space/gaps
How can I remove space/gaps between continuous x-values in geom_raster
我正在处理一些时频分解的 EEG 数据,并想使用 ggplot2 生成类似频谱图的图形。但是,我最终在每个时间点之间都有空格。
Data <- read.csv(url("https://www.dropbox.com/s/al3cygigm86mr3s/Test_Spec_Data.csv?dl=0"))
如果我创建一个香草 geom_raster 我在 x 和 y 数据中出现间隙:
ggplot(Data,aes(Times,Frequency)) +
geom_raster(aes(fill = ERSP))
如果我将 Frequency
作为一个因子,它会填补 y 的空白;但是,沿 x 轴的间隙仍然存在:
ggplot(Data,aes(Times,factor(round(Frequency,digits=1)))) +
geom_raster(aes(fill = ERSP))
我可以通过使 Times
成为一个因素来消除差距。
但是,管理 scale_x_discrete
如此多的数据点很麻烦(请注意 x 轴标签)。此外,这些时间数据是连续的,并不是真正的因子类。
geom_raster
没有像 geom_bar
这样的 width
参数,我在 geom_raster
文档中看不到任何类似的内容。
有没有办法保持 Times
连续但消除观察之间的差距?
因为没有足够的数据(或者更准确地说,它们不是均匀分布的),所以有差距。
您的 "factor" 转换删除了间隙,因为它删除了缺少数据的 X 或 Y 轴部分。在 Y 轴上看:刻度是均匀的空间,但值不是(8.5-8.1=0.4,而 11.3-10.7=0.6,你有最大的差距)。
我可以看到两个解决方案:
- 插值数据,使源数据均匀分布
- 使用
geom_tile
而不是 geom_raster
并指定 width
和 height
参数到 "expand" 你的瓷砖并填补空白,如 the fourth example of the doc.
我正在处理一些时频分解的 EEG 数据,并想使用 ggplot2 生成类似频谱图的图形。但是,我最终在每个时间点之间都有空格。
Data <- read.csv(url("https://www.dropbox.com/s/al3cygigm86mr3s/Test_Spec_Data.csv?dl=0"))
如果我创建一个香草 geom_raster 我在 x 和 y 数据中出现间隙:
ggplot(Data,aes(Times,Frequency)) +
geom_raster(aes(fill = ERSP))
如果我将 Frequency
作为一个因子,它会填补 y 的空白;但是,沿 x 轴的间隙仍然存在:
ggplot(Data,aes(Times,factor(round(Frequency,digits=1)))) +
geom_raster(aes(fill = ERSP))
我可以通过使 Times
成为一个因素来消除差距。
但是,管理 scale_x_discrete
如此多的数据点很麻烦(请注意 x 轴标签)。此外,这些时间数据是连续的,并不是真正的因子类。
geom_raster
没有像 geom_bar
这样的 width
参数,我在 geom_raster
文档中看不到任何类似的内容。
有没有办法保持 Times
连续但消除观察之间的差距?
因为没有足够的数据(或者更准确地说,它们不是均匀分布的),所以有差距。
您的 "factor" 转换删除了间隙,因为它删除了缺少数据的 X 或 Y 轴部分。在 Y 轴上看:刻度是均匀的空间,但值不是(8.5-8.1=0.4,而 11.3-10.7=0.6,你有最大的差距)。
我可以看到两个解决方案:
- 插值数据,使源数据均匀分布
- 使用
geom_tile
而不是geom_raster
并指定width
和height
参数到 "expand" 你的瓷砖并填补空白,如 the fourth example of the doc.