我试图在MATLAB中绘制一个数据数组,如下所示:
ans = [8.1, 8.1+(10^-11) , 8.1+2*(10^-11) , 8.1+3*(10^-11)]
labels = [8.1, 8.1+(10^-11) , 8.1+2*(10^-11) , 8.1+3*(10^-11)]
plot([1,2,3,4],ans)
上面的代码产生了这个: -
问题是Y轴显示所有数据点的相同值/数字/标签。如何设置绘图以更精确地显示这些标签? (例如8.1
,8.1+10^-11
,...或8.10000000001
)
我尝试了下面的命令,但没有帮助。
set( gca, 'YTickLabel', get(gca, 'YTick'));
有人可以帮助改善这个情节,以反映数据点之间的差异吗?
答案 0 :(得分:1)
您可以在Matlab中手动控制Y轴标签的格式。 因此,以下代码适用于高于Matlab2015b的版本。
res = [8.1, 8.1+(10^-11) , 8.1+2*(10^-11) , 8.1+3*(10^-11)];
plot([1,2,3,4],res);
ay=gca;
ay.YAxis.TickLabelFormat = '%.12f';
如果您想手动控制版本中Y轴刻度标签的格式,您应该做类似的事情
res = [8.1, 8.1+(10^-11) , 8.1+2*(10^-11) , 8.1+3*(10^-11)];
plot([1,2,3,4],res);
ay=gca;
currTicks=get(ay,'YTick');
for i=1:size(currTicks,2)
newTickLabels(i,1)=cellstr(sprintf('%.12f',currTicks(i)));
end
set(ay,'YTickLabel',newTickLabels);
我没有在Matlab2014b上测试这段代码,但是我没有看到它缺少的任何功能(至少据我所知)。
在Matlab 2016a中,没有问题,开箱即用#34;通过复制和粘贴代码。