创建十六进制图
Creating a hexplot
我正在尝试创建如下图第三列所示的图形:
基本上我有 200 个粒子的 x 和 y 位置,我有这 200 个位置的 MSD 数据。我希望 MSD 是确定坐标 (x,y)
中粒子颜色图的值。所以MSD应该像高度,或者说(x,y)
中每个粒子对应的z
位置。
我对自己的无能感到惊讶,因为过去几天我一直在尝试解决这个问题,但是 none 的 Google 搜索给了我任何结果。我发现最接近的东西是 Matlab 和 R 中 "self-organizing map" 的概念,但我不知道如何使用 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)
的 2D 散点图,描述粒子位置,在该颜色代码之上,此散点图的值存储在 msd 中,就像我在开头显示的图一样。我如何通过 Matlab 或任何其他可视化工具创建它?提前谢谢你。
不清楚你想要什么。这里使用 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()
我正在尝试创建如下图第三列所示的图形:
基本上我有 200 个粒子的 x 和 y 位置,我有这 200 个位置的 MSD 数据。我希望 MSD 是确定坐标 (x,y)
中粒子颜色图的值。所以MSD应该像高度,或者说(x,y)
中每个粒子对应的z
位置。
我对自己的无能感到惊讶,因为过去几天我一直在尝试解决这个问题,但是 none 的 Google 搜索给了我任何结果。我发现最接近的东西是 Matlab 和 R 中 "self-organizing map" 的概念,但我不知道如何使用 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)
的 2D 散点图,描述粒子位置,在该颜色代码之上,此散点图的值存储在 msd 中,就像我在开头显示的图一样。我如何通过 Matlab 或任何其他可视化工具创建它?提前谢谢你。
不清楚你想要什么。这里使用 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()