Изменить метку осей Tick в Surf - Plot

Проблема

У меня есть график серфинга, основанный на данных цикла, и я хотел бы изменить внешний вид метки X-tick и метки Y-tick, не меняя внешний вид графика.

А именно, я хотел бы умножить ось X на 1000 и разделить ось Y на сто. Я пробовал следующий код:

Код

h=surf(results)
hold on
ax=gca;
Xlim=[200 2000];
ax.YTick=ax.YTick/100;
ax.XTick=ax.XTick*1000;
h.EdgeAlpha=0;
hold off   

Неправильный результат

введите здесь описание изображения

Как это должно выглядеть

С изменениями, которые я внес, исчезают только второстепенные галочки x и y, и X-lim тоже не работает, создавая эту массивную желтую стену, которую можно увидеть на картинке, так как у меня нет данных для первых 200 шагов (до изменения галочка).

Любая помощь в этом будет очень признательна!


person KiW    schedule 29.08.2016    source источник


Ответы (1)


Я думаю, что вы действительно хотите изменить «TickLabels» (YTickLabel, XTickLabel, ...). «Ticks» относится к фактическим значениям на графике, а TickLabels относится к тому, что напечатано на фактическом Tick.

h=surf(results)
hold on
ax=gca;
Xlim=[200 2000];
yText=ax.YTick/100;
xText=ax.XTick*1000;
ax.YTickLabel = yText;
ax.XTickLabel = xText;
h.EdgeAlpha=0;
hold off 
person patrik    schedule 29.08.2016
comment
Быстрый вопрос: мой новый XtickLabel теперь достигает миллионов, но Matlab не отображает его в обычном стиле x * 10 ^ 6 - могу ли я что-нибудь с этим поделать? - person KiW; 29.08.2016
comment
@KiW Я предполагаю, что проблема в том, что вы уже сделали преобразование. TickLabels также могут быть текстовыми, поэтому, поскольку вы все равно хотите их преобразовать, вы можете использовать sprintf и научный формат. - person patrik; 29.08.2016