我实际上有数据:
**CODE**==
我想将这些数据绘制成条形图,其中z表示条形的高度,但问题是我不知道如何处理x和y轴,重复和不连续的值以及每当我尝试简单地使用 x y z
2 4 0,494949495
2 6 0,494949495
2 8 0,535353535
2 10 0,585858586
2 12 0,474747475
3 4 0,535353535
3 6 0,494949495
3 8 0,545454545
3 10 0,484848485
3 12 0,474747475
4 4 0,535353535
4 6 0,474747475
4 8 0,434343434
4 10 0,525252525
4 12 0,494949495
我收到以下错误:
使用matlab.graphics.axis.Axes / set时出错 在设置'Axes'的'YTick'属性时:
值必须是单值或双精度值的向量,其值增加
bar3中的错误(第74行)
集(CAX, 'ytick',Y(:,1));
答案 0 :(得分:0)
这是一种在x和y列指定的每个坐标处绘制z值的方法。
xyzData=[2 4 0.494949495;
2 6 0.494949495;
2 8 0.535353535;
2 10 0.585858586;
2 12 0.474747475;
3 4 0.535353535;
3 6 0.494949495;
3 8 0.545454545;
3 10 0.484848485;
3 12 0.474747475;
4 4 0.535353535;
4 6 0.474747475;
4 8 0.434343434;
4 10 0.525252525;
4 12 0.494949495];
Y=NaN(xyzData(end,1),max(xyzData(:,2)));
Y(sub2ind(size(Y),xyzData(:,1),xyzData(:,2)))=xyzData(:,3);
figure;bar3(Y)
输出: