Диаграмма рассеяния с несколькими маркерами

Я пытаюсь собрать точечную диаграмму из нескольких файлов данных, чтобы увидеть, как они соотносятся друг с другом. Код выглядит следующим образом:

hold all
fia = fopen('data.txt');
A = fscanf(fia, '%f %f %f', [3 inf]);
t = A(1,:);
a = A(2,:);
r = A(3,:);

figure(1)
scatter(log(r),log(a),'r', '-');

fclose(fia);

fia = fopen('data.txt');
A = fscanf(fia, '%f %f %f', [3 inf]);
t = A(1,:);
a = A(2,:);
r = A(3,:);

figure(2);
scatter(log(r),log(a), 'g', '-');

fclose(fia);

И так далее, где следующие точки данных нанесены на тот же график:

fia = fopen('data.txt');
A = fscanf(fia, '%f %f %f', [3 inf]);
t = A(1,:);
a = A(2,:);
r = A(3,:);

figure(1);
scatter(log(r),log(a), 'rx');


fclose(fia);

ЭСТ.

Но когда я запускаю функцию в Matlab, я получаю эту ошибку:

Error using specgraph.scattergroup/set
The name 'linestyle' is not an accessible property for an instance
of class 'scattergroup'.

Error in specgraph.scattergroup (line 26)
  set(h,args{:});

Error in scatter (line 83)
        h = specgraph.scattergroup('parent',parax,'cdata',c,...

Error in Ratioincrease (line 11)
scatter(log(r),log(a),'r', '-');

Как я могу сделать точечную группу похожей на линейную группу, например, как правильно ее написать?


person Doug Grosser    schedule 08.01.2013    source источник
comment
'-' - это свойство стиля линии. Это бессмысленно на точечной диаграмме. Что вы пытаетесь с этим сделать? Вы хотите, чтобы маркеры разброса были знаками минус? Это невозможно. Проверьте doc linespec в разделе «Спецификации маркеров», чтобы узнать, какие маркеры вы можете использовать.   -  person Geodesic    schedule 08.01.2013


Ответы (3)


Не должно быть проблем с использованием scatter и отображением разных маркеров. Например:

load seamount
scatter(x,y,30,z,'s'); hold on
scatter(.999*x,1.001*y,30,z,'x'); hold on
scatter(1.001*x,.999*y,30,z,'+'); hold on

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

Я подозреваю, что вы сделали опечатку и использовали - в качестве типа маркера. Типы маркеров, которые вы можете использовать:

  • '+' Плюс
  • 'o' Круг
  • '*' Звездочка
  • '.' Точка
  • 'x' Крест
  • 'square' или 's' квадрат
  • 'diamond' или 'd' алмаз
  • '^' Треугольник вершиной вверх
  • 'v' Треугольник вершиной вниз
  • '>' Прямоугольный треугольник
  • '<' Треугольник, указывающий влево
  • 'pentagram' или 'p' Пятиконечная звезда (пентаграмма)
  • 'hexagram' или 'h' Шестиконечная звезда (гексаграмма)
person bla    schedule 08.01.2013
comment
если у меня есть вектор x и вектор y, и я делаю точечную диаграмму. как мне дать разные цвета значениям x и y - person user311790; 14.04.2017
comment
каждая точка имеет координату [x, y] из этого вектора x, y, вы строите набор точек, определяемых этими векторами. как вы определяете эти конкретные точки x, y в этом векторе? - person bla; 16.04.2017

Просто добавьте, что вам не нужно писать «подожди» для каждой строки. Одного раза будет достаточно. Итак, для этого вы можете написать:

load seamount
scatter(x,y,30,z,'s'); hold on
scatter(.999*x,1.001*y,30,z,'x'); 
scatter(1.001*x,.999*y,30,z,'+'); 

Кроме того, если вы хотите нарисовать новый набор данных и очистить предыдущий, вам нужно один раз написать «отложить» перед выполнением этой команды.

person user3437983    schedule 11.05.2014

Имя свойства scattergroup — «маркер».

Проверьте в документе «Свойства рассеянной группы».

person Mario Barosso    schedule 16.04.2015