2016-09-06 8 views
1

Я пытаюсь построить массив данных в MATLAB следующим образом:оси этикетки в 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) 

Приведенный выше код производит это: -

plot

Проблема что ось Y отображает одно и то же значение/число/метку для всех точек данных. Как настроить сюжет таким образом, чтобы показать эти метки более точно? (например, 8.1, 8.1+10^-11, ... или 8.10000000001)

Я пробовал приведенную ниже команду, но это не помогло.

set(gca, 'YTickLabel', get(gca, 'YTick')); 

Может ли кто-нибудь помочь в улучшении этого участка, чтобы отразить различия между точками данных?

+1

Не удалось воспроизвести вашу проблему с помощью MATLAB 2016a. Я запустил первые три строки, указанные вами в начале вашего вопроса, и получил этот результат: http://i.stack.imgur.com/fxRak.jpg (хотя значения, указанные вами как 'label', не делают ничего здесь). Какую версию MATLAB вы используете? –

+0

Спасибо за ваш комментарий. Я использую MATLAB 2014b. – Crimson

+0

Я могу воспроизвести вашу проблему, запустив эту строку: 'set (gca, 'YTickLabel', get (gca, 'YTick')):' Вы всегда используете свой код с этой строкой? Если да, попробуйте запустить код без него. –

ответ

1

Вы можете вручную управлять форматом метки оси Y в Matlab. Итак, следующий код будет работать на версиях выше 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 нет проблем с правом «из коробки» путем копирования и вставки кода.

+0

Спасибо за ваш ответ. Код, который вы дали для управления форматом меток ярлыков оси Y (для пользователей Matlab2014b), работает хорошо. – Crimson

 Смежные вопросы

  • Нет связанных вопросов^_^