绘制图形的痕迹

Plot trace of figure

我有 11 个二进制数据集,我想生成一个图表,其中包含数据集(所有 297x258)的相应数字的轨迹,其中 y 轴和 x 轴乘以比例(1.3 *10^(-6)) 并分别标记为 'Y-axis(μm)' 和 'X-axis (μm)'。 11 个数据集存储在一个单元格中(即 data1{1},...data1{11})。此外,如果绘图还可以用相应数据集的名称标记每个轨迹,我们将不胜感激(即 data1{1},...)。

The binary data

预期输出示例:

为了绘制此图,我首先在所有数据集的每一列中找到第一个非零元素,然后将它们相加以绘制彼此重叠的线条。
最后,我将轴乘以您提供的转换常数(下面的raitio)并更改格式以满足您要求的样式:

data = reshape(cell2mat(data1),297,258,[]);
S = size(data);
fnzc = zeros(S([1 3])); % first non zero in column
for k = 1:S(3)
    csc = cumsum(data(:,:,k)>0,2); % on columns
    fnzc(:,k) = csc(:,end);
end
ratio = 1.3*(10^(-6));
ax = axes;
plot(ax,(S(1):-1:1)*ratio,cumsum(fnzc,2)*ratio)
ax.XAxis.TickLabelFormat = '%2d';
ax.XAxis.Exponent = -6;
ax.YAxis.TickLabelFormat = '%2d';
ax.YAxis.Exponent = -6;

结果是: