标签: eeglab

ggplot2中的topoplot - 例如EEG数据的2D可视化

可以ggplot2用来产生一个所谓的topoplot(经常用于神经科学)?

topoplot

样本数据:

   label          x          y     signal
1     R3 0.64924459 0.91228430  2.0261520
2     R4 0.78789621 0.78234410  1.7880972
3     R5 0.93169511 0.72980685  0.9170998
4     R6 0.48406513 0.82383895  3.1933129
Run Code Online (Sandbox Code Playgroud)

完整的样本数据.

行代表单个电极.列xy表示投影到2D空间中,列signal基本上是z轴,表示在给定电极处测量的电压.

stat_contour 不起作用,显然是由于网格不平等.

geom_density_2d只提供的密度估计xy.

geom_raster 是不适合这项任务的,或者我必须错误地使用它,因为它很快就会耗尽内存.

不需要平滑(如右图所示)和头部轮廓(鼻子,耳朵).

我想避免使用Matlab并转换数据,以便它适合这个或那个工具箱......非常感谢!

更新(2016年1月26日)

我能够达到目标的最接近的是通过

library(colorRamps)
ggplot(channels, aes(x, y, z = signal)) + stat_summary_2d() + scale_fill_gradientn(colours=matlab.like(20))
Run Code Online (Sandbox Code Playgroud)

产生这样的图像:

在此输入图像描述

更新2(2016年1月27日)

我已经尝试了@ alexforrence的完整数据方法,这就是结果:

@ alexforrence的方法

这是一个很好的开始,但有几个问题:

  1. 最后一次调用(ggplot())在Intel i7 4790K上大约需要40秒,而Matlab工具箱几乎可以立即生成这些内容.我上面的'紧急解决方案'需要大约一秒钟.
  2. 正如你所看到的,中央部分的上边界和下边界似乎是"切片" - 我不确定是什么导致这种情况,但它可能是第三个问题.
  3. 我收到这些警告:

    1: Removed 170235 …
    Run Code Online (Sandbox Code Playgroud)

r neuroscience ggplot2 eeglab

8
推荐指数
1
解决办法
2287
查看次数

标签 统计

eeglab ×1

ggplot2 ×1

neuroscience ×1

r ×1