创建一个hexplot

时间:2015-06-13 12:44:32

标签: r matlab matplotlib gnuplot matlab-figure

我正在尝试创建一个类似下图中第三列所示的图形:

enter image description here

备份时

Link for the image

基本上我有200个粒子的x和y位置,我有这200个位置的MSD数据。我希望MSD成为应该为坐标(x,y)中的粒子确定颜色贴图的值。所以MSD应该像z中的每个粒子对应的高度或(x,y)位置。

我对自己的无能感到惊讶,因为我在过去几天一直试图解决这个问题,但谷歌搜索都没有给我任何结果。我发现的最接近的事情是"自组织地图"在Matlab和R中,但我不知道如何使用R和Matlab的SOM工具箱对我的需求非常有用。

我在Matlab中尝试了以下代码并得到附图:

clear all; close all; clc;

x = (dlmread('xdata.dat'))'; % x is 1x200 array
y = (dlmread('ydata.dat'))'; % y is 1x200 array 
msd = (dlmread('msd_field.txt'))'; % msd is 1x200 array

[X,Y] = meshgrid(x,y);
Z = meshgrid(msd);
z = [X; Y; Z]; 
surf(z)

但我认为这个情节根本没用。我想要的是一个描绘粒子位置的(x,y)的二维散点图,并在该颜色代码的顶部,这个散点图与msd中存储的值一样,就像我在开头展示的情节一样。如何通过Matlab或任何其他可视化工具创建?提前谢谢。

Surface graph

1 个答案:

答案 0 :(得分:2)

目前尚不清楚你想拥有什么。这是使用ggplot2的散点图。

## some reproducible data 
set.seed(1)
dat <- data.frame(
  x = round(runif(200,-30,30),2),
  y = round(runif(200,-2,30),2),
  msd = sample(c(0,2,3),200,rep=T))

## scatter plot where the size/color of points depends in msd
library(ggplot2) 
ggplot(dat) +
  geom_point(aes(x,y,size=msd,color=msd)) +
  theme_bw()

enter image description here