2013-10-04 7 views
0

У меня есть некоторые данные, например, от [0,1: 0.1: 0.9] + [1: 1: 10].Как равномерно распределить точку данных на графике вдоль оси x

Если я использую разброс, чтобы построить его, это выглядит так.

enter image description here

Тем не менее, хотят точки равномерно распределяют вдоль оси, каждый может сказать мне, как это сделать? Я имею в виду, что расстояние между точками данных в [0,1-0,9] одинаково с [1-10] на графике относительно оси х.

ответ

1

Если данные содержатся в векторах x и y используйте

plot(y,'o') 

вместо plot(x,y,'o') или scatter(x,y).

Если вы хотите маркировать x ось, использовать что-то вроде

set(gca,'xtick',1:length(y),'xticklabel',[.1:.1:.9 1:10]) 

Или вы можете захотеть подмножество меток, например:

set(gca,'xtick',1:2:length(y),'xticklabel',[.1:.2:.9 2:2:10]) 
+0

Отлично! Благодаря! Но если я хочу только показать, скажем [0,1 0,5 1 5] метку вдоль оси x, то как изменить содержимое набора (...)? Кроме того, вы могли бы объяснить эту магию немного :) –

+0

@AllenJee Я обновил свой ответ. Для этих меток вы используете 'set (gca, 'xtick', [1 5 10 14], 'xticklabel', [........ Первый вектор выбирает подмножество значений оси x и устанавливает тики в этих точках; а второй вектор указывает метки для этих тиков. –

+0

@ AllenJee. Строка 'plot (y, 'o')' просто рисует данные 'y', если ось x равна 1, 2, 3 ... Затем вы устанавливаете x оси и метки с линией 'set (...)' –

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