我有几套数据。每一组都是一个数字列表,这是一个粒子从0开始移动的距离。每个集合都与有限时间相关联,所以集合1是T=0的距离,set 2是T=1的距离等等。每个集合的大小是粒子的总数,每个集合的大小是相同的。
我要画一条集中度和距离线。
例如,如果有1000个粒子(集合的大小);在时间T=0中,图将只是一个直线x=0,因为所有的粒子都在0(集合包含1000个零)。因此,在x=0 =100%,在所有其他距离为0%。
在T=1和T=2等等,距离会增加(通常),所以我可能有如下所示的设置:(只是一个例子)
T1 =(1.1,2.2,3.0,1.2,3.2,2.3,1.4.)etc T2 =(2.9,3.2,2.6,4.5,4.3,1.4,5.8.)等
很可能每组中的每个数字在该集合中都是唯一的。
目标是有几个图(我最终可以把它们画在一个图上)来显示y轴上的浓度和x轴上的距离。我设想,随着T的增加,T0,T1,T2,然后地块会变平,直到所有地方的浓度大致相同。
X轴(距离)有一个固定的最大值,对每个地块都是一样的.因此,例如,有些集合将有一条曲线,在x(距离)的低值处,y轴(浓度)为零,但随着时间的增加,我设想了一条几乎平坦的直线,该线不与x轴相交(处处浓度为非零)。
我用直方图试过了,但它并没有给出我想要的结果。我想要一个线图,但必须试着把距离放在常识大小的垃圾箱里。
谢谢W

一些粗略数据
Y1 = 1.0e-09 * [0.3358, 0.3316, 0.3312, 0.3223, 0.2888, 0.2789, 0.2702,...
0.2114, 0.1919, 0.1743, 0.1738, 0.1702, 0.0599, 0.0003, 0, 0, 0, 0, 0, 0];
Y2 = 1.0e-08 * [0.4566, 0.4130, 0.3439, 0.3160, 0.3138, 0.2507, 0.2483,...
0.1714, 0.1371, 0.1039, 0.0918, 0.0636, 0.0502, 0.0399, 0.0350, 0.0182,...
0.0010, 0, 0, 0];
Y3 = 1.0e-07 * [0.2698, 0.2671, 0.2358, 0.2250, 0.2232, 0.1836, 0.1784,...
0.1690, 0.1616, 0.1567, 0.1104, 0.0949, 0.0834, 0.0798, 0.0479, 0.0296,...
0.0197, 0.0188, 0.0173, 0.0029];这些数据集仅包含20个粒子的距离。Y0集是零。我要处理成千上万的问题,所以数据集太大了。
谢谢你
发布于 2016-08-08 20:54:57
基本上,您只是错过了hold命令。但首先,将所有数据放在一个矩阵中,如下所示:
Y = [1.0e-09 * [0.3358, 0.3316, 0.3312, 0.3223, 0.2888, 0.2789, 0.2702,...
0.2114, 0.1919, 0.1743, 0.1738, 0.1702, 0.0599, 0.0003, 0, 0, 0, 0, 0, 0];
1.0e-08 * [0.4566, 0.4130, 0.3439, 0.3160, 0.3138, 0.2507, 0.2483,...
0.1714, 0.1371, 0.1039, 0.0918, 0.0636, 0.0502, 0.0399, 0.0350, 0.0182,...
0.0010, 0, 0, 0];
1.0e-07 * [0.2698, 0.2671, 0.2358, 0.2250, 0.2232, 0.1836, 0.1784,...
0.1690, 0.1616, 0.1567, 0.1104, 0.0949, 0.0834, 0.0798, 0.0479, 0.0296,...
0.0197, 0.0188, 0.0173, 0.0029]];然后,需要分别绘制每个时间步骤,并使用hold on将它们粘贴到相同的轴上:
hold on
for r = size(Y,1):-1:1
histogram(Y(r,:));
end
hold off
T_names = [repmat('T',size(Y,1),1) num2str((size(Y,1):-1:1).')];
legend(T_names)它将提供给您(使用示例数据):

请注意,在循环中,我向后迭代行--这只是为了在更宽的范围上绘制更窄的直方图图,这样您就可以清楚地看到它们。
编辑
如果您想要的是连续线,而不是回收箱,您必须先通过histcounts获取直方图值,然后将其绘制成一条线:
hold on
for r = 1:size(Y,1)
[H,E] = histcounts(Y(r,:));
plot(E,[H(1) H])
end
hold off
T_names = [repmat('T',size(Y,1),1) num2str((1:size(Y,1)).')];
legend(T_names)但是,用您的小示例数据看上去并不那么令人印象深刻:

https://stackoverflow.com/questions/38833334
复制相似问题