【问题标题】:Creating a hexplot创建十六进制图
【发布时间】:2015-06-13 12:44:32
【问题描述】:

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

Link for the image 用于备份。

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

我对自己的无能感到惊讶,因为过去几天我一直在尝试解决这个问题,但 Google 搜索都没有给我任何结果。我发现最接近的是 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 或任何其他可视化工具创建它?提前谢谢你。

【问题讨论】:

    标签: r matlab matplotlib gnuplot matlab-figure


    【解决方案1】:

    不清楚你想要什么。这里是使用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()
    

    【讨论】:

    • 这看起来像我需要的。我想创建 (x,y) 的散点图并用 z 中的值对它们进行颜色编码。它们都是 1x200 数组。看起来此代码是用 R 编写的。我正在尝试制作此图以进行演示。到那时我会努力学习和实施这一点。虽然我仍然希望有一种方法可以在 Python 或 Matlab 中完成。谢谢。
    • 你可以看到python pandas。它的语法与 R 代码相同(可能更简单)。 df.plot(kind='scatter', x='x', y='y', s='msd')
    猜你喜欢
    • 1970-01-01
    • 2012-07-12
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2018-07-26
    相关资源
    最近更新 更多