我正在使用一些时频分解的脑电图数据,并希望使用ggplot2生成类似频谱图的图形。但是,我的每个时间点之间都有空格。
Data <- read.csv(url("https://www.dropbox.com/s/al3cygigm86mr3s/Test_Spec_Data.csv?dl=0"))
如果我创建一个vanilla 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
没有像width
这样的geom_bar
参数,我在geom_raster
文档中看不到类似内容。
有没有办法让Times
保持连续但消除观察之间的差距?
答案 0 :(得分:1)
存在间隙,因为没有足够的数据(或者更确切地说,它们没有均匀间隔)。
你的因素&#34;转换消除了间隙,因为它删除了数据丢失的X或Y轴部分。在Y轴看:蜱是均匀的空间,但值不是(8.5-8.1 = 0.4,而11.3-10.7 = 0.6,你有最大的差距)。
我可以看到两种解决方案:
geom_tile
代替geom_raster
,并指定width
和height
参数来&#34;展开&#34;你的瓷砖并填补空白,如the fourth example of the doc。