【发布时间】:2015-01-07 00:51:09
【问题描述】:
我(大部分)有一个原型脚本来实现我想要的,但我还不是程序员,我写的很麻烦。我可以使用一些帮助将它安装到一个可以容纳超过 10 个垃圾箱的包装中(见下文)。在此过程中,我也很想知道如何为每个系列分配不同的颜色。
简而言之,我有一个 (n,2) 矩阵——其中 n 是 20,000 到 40,000),它由两个变量的数据组成。通常,我会在轴上绘制每个变量的散点图(或密度图)。现在,我想沿 x 轴对数据进行切片(错误,将数据分成 bin),并为每个 bin 中的 y 值绘制直方图。然后,我将每个 bin 的所有直方图绘制在同一个图上(最好使用不同的颜色),以更清楚地了解分布如何随着 X 的变化而变化。
注意:1) 数据是按对数比例设置的,因此是对数空间箱。 2)为了论证,假设 logicleHist 只是一个常规的 hist 函数。
示例
%DensPlot Slicer
data=[BFP GFP];
dp_bins=10;
dp_bounds=logspace(1,5,dp_bins);
%bins
b1=data(data(:,1) >= dp_bounds(1) & data(:,1) < dp_bounds(2),:);
b2=data(data(:,1) >= dp_bounds(2) & data(:,1) < dp_bounds(3),:);
b3=data(data(:,1) >= dp_bounds(3) & data(:,1) < dp_bounds(4),:);
b4=data(data(:,1) >= dp_bounds(4) & data(:,1) < dp_bounds(5),:);
b5=data(data(:,1) >= dp_bounds(5) & data(:,1) < dp_bounds(6),:);
b6=data(data(:,1) >= dp_bounds(6) & data(:,1) < dp_bounds(7),:);
b7=data(data(:,1) >= dp_bounds(7) & data(:,1) < dp_bounds(8),:);
b8=data(data(:,1) >= dp_bounds(8) & data(:,1) < dp_bounds(9),:);
b9=data(data(:,1) >= dp_bounds(9) & data(:,1) < dp_bounds(10),:);
figure;
hold on
logicleHist(b1(:,2));
logicleHist(b2(:,2));
logicleHist(b3(:,2));
logicleHist(b4(:,2));
logicleHist(b5(:,2));
logicleHist(b6(:,2));
logicleHist(b7(:,2));
logicleHist(b8(:,2));
logicleHist(b9(:,2));
建议?谢谢!
【问题讨论】:
-
@LordHenryWotton 和 dave kielpinski 建议的 For 循环正是我所需要的。颜色必须等待,因为您的答案表明要修改颜色,该选项必须包含在绘图功能中。 logicleHist 是一个可容纳负数据的双指数“轨迹”图,我必须调整函数以包含颜色修饰符。与此同时,一个子情节会做得很好。你们太棒了。