我正在尝试将yticklabels配置为以非科学记数法格式显示在图表上。我原来的情节看起来像:
为了删除科学记数法,我尝试过:
set(gca,'YTickLabel',num2str(get(gca,'YTick').'))
但我得到以下结果:
从这里可以看出,这没有任何意义,因为y轴值应该增加。
我也尝试过以下代码:
yt=get(gca,'YTick');
set(gca,'YTickLabel',sprintf('%.1f\n',yt))
我得到了以下结果:
这也没有意义。顶部标签缺失。
我无法找到正确的方法。任何帮助将不胜感激。
编辑: 由于我的问题已被确定为可能重复,我想补充一些针对我的问题的其他一些评论,我将在下面解释。
如果我尝试以下代码:
yt = get(gca,'YTick');
set(gca,'YTickLabel', sprintf('%.1f|',yt))
在Matlab 2013b中,它有效。但是,由于某些原因,我在Matlab 2015a中做到这一点时得不到相同的结果。 在Matlab 2015a中,上面的代码将导致:
在Matlab 2015a中,我还尝试使用\ n而不是|:
稍微修改上面的代码yt = get(gca,'YTick');
set(gca,'YTickLabel', sprintf('%.2f\n',yt))
我在Matlab 2013b中获得了类似的结果。唯一的区别是它错过了顶级品牌:
我认为问题不是set(gca,'YTickLabel', sprintf('%.2f\n',yt))
位,我认为问题出在yt = get(gca,'YTick')
,因为某些原因它只检测到3个标签而不是4个:
我也尝试过Matlab交换函数tick2text,解释如下:Suppress exponential formatting in figure ticks
但结果也不对:
从这里可以看出,标签丢失了。我不明白为什么标签不能平均分割y轴。
我很感激那些认为我的问题一式两份的人至少要说出原因。因为我花了一些时间尝试使用不同的示例和图像尽可能清楚地解释我的问题。