我有几组数据。每组都是一个数字列表,它是粒子行进的距离0。每组与有限时间相关联,因此组1是T = 0时的距离;第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 ......)等T2 =(2.9,3.2,2.6,4.5,4.3,1.4,5.8 ......)等
每个集合中的每个数字很可能在该集合中是唯一的
目标是有几个图(我最终可以在一个图上绘制它们),显示y轴上的浓度和x轴上的距离。我想,当T增加T0,T1,T2时,情节会变平,直到浓度在各处大致相同。
x轴(距离)具有固定的最大值,对于每个绘图都是相同的。因此,例如,一些集合将具有在y轴(浓度)处达到零的曲线,在x(距离)的低值处,但随着时间的增加,我设想一条近似平坦的线,其中线不穿过x轴(浓度在任何地方都不为零)
我用直方图试过这个,但它并没有真正给出我想要的结果。我想要一个线图,但必须尝试将距离放入常识大小的箱子中。
谢谢你
一些粗略的数据
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
集为零。我将处理数千个,因此数据集太大了。
三江源
答案 0 :(得分:0)
嗯,基本上,你只是错过了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)