Как я могу удалить пробелы / пробелы между непрерывными значениями x в geom_raster
Я работаю с некоторыми частотно-разложенными данными ЭЭГ и хочу получить диаграмму, похожую на спектрограмму, используя 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
фактор, он заполняет разрыв у; но промежутки вдоль оси 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
как непрерывно, но устранить разрывы между наблюдениями?
1 ответ
Есть пробелы, потому что данных недостаточно (или, точнее, они не расположены равномерно).
Ваше "факторное" преобразование устраняет разрыв, потому что оно удаляет части оси X или Y, где отсутствуют данные. Посмотрите по оси Y: тики - это ровные пробелы, а значения - нет (8,5-8,1=0,4, а 11,3-10,7=0,6, где у вас самый большой разрыв).
Я вижу два решения:
- Интерполируйте данные, чтобы ваши исходные данные были равномерно распределены
- использование
geom_tile
вместоgeom_raster
и указатьwidth
а такжеheight
Параметры для "расширения" ваших плиток и заполнения пробелов, как объяснено в четвертом примере документа.