删除科学计数法但在 Matlab 刻度标签中四舍五入
Removing scientific notation but with rounding in Matlab tick labels
我正在从一个生成向量的循环中以非常小的比例绘图,data
。无论如何,例如,YTickLabel
自动采用“6x10-3”格式。
data = [0.0004578945622489441 0.00154798436685536652442 0.005987463212456878422336324 0.003651558742652333624455];
plot(data)
我知道我可以使用以下方法来显示完整的刻度标签:
yt = get(gca,'YTick');
set(gca,'YTickLabel', sprintf('%.4f|',yt))
但是,因为这些数字是从我的循环中生成的,所以它们很长(~20 位数字),所以这会完整显示它们。我需要以某种方式四舍五入吗? (无需手动使用 YTickLabel = {'0.0001', '0.0002'};
... 等)
以下对我有用:
set(gca, 'YTickLabel', get(gca, 'YTick'))
在 Matlab R2014b 中你也可以使用
ax = gca;
ax.YTickLabel = ax.YTick;
无论哪种方式,这样做都是将 YTick 值分配给 YTickLabel。这以某种方式阻止了科学记数法。
我正在从一个生成向量的循环中以非常小的比例绘图,data
。无论如何,例如,YTickLabel
自动采用“6x10-3”格式。
data = [0.0004578945622489441 0.00154798436685536652442 0.005987463212456878422336324 0.003651558742652333624455];
plot(data)
我知道我可以使用以下方法来显示完整的刻度标签:
yt = get(gca,'YTick');
set(gca,'YTickLabel', sprintf('%.4f|',yt))
但是,因为这些数字是从我的循环中生成的,所以它们很长(~20 位数字),所以这会完整显示它们。我需要以某种方式四舍五入吗? (无需手动使用 YTickLabel = {'0.0001', '0.0002'};
... 等)
以下对我有用:
set(gca, 'YTickLabel', get(gca, 'YTick'))
在 Matlab R2014b 中你也可以使用
ax = gca;
ax.YTickLabel = ax.YTick;
无论哪种方式,这样做都是将 YTick 值分配给 YTickLabel。这以某种方式阻止了科学记数法。