2016-06-21 11 views
0

Мы хотим показать точку «под названием типа1» в разных позициях (2,8, ..), мы использовали этот код:вид один пункт в различных положениях

x = linspace(0,30,1000); 
axis([0,20,-0.4,1.5]); 
ax = gca; 
h = hgtransform('Parent',ax); 
type1=plot(x(1)-1,y(1),'s','Parent',h,'MarkerFaceColor','red','MarkerSize',20); 
type2=plot(x(1)-1,y(1),'s','Parent',h,'MarkerFaceColor','green','MarkerSize',40); 
type1.XData= 2; 
hold on 
type2.XData= 6; 
hold on 
type1.XData= 8; 

Но только последняя позиция показала

Как сохранить каждую показанную точку зрения на рисунке?

Благодаря inadvance

+0

Вместо изменения 'XData' вам нужно будет создать * новый * график с каждым другим значением x, если вы хотите увидеть старые. – Suever

+0

@Suever мы хотим, чтобы точки, которые показывались на том же рисунке (без открытия новой фигуры), не следует делать, используя hold on ?? – user3332603

+0

'hold on' works * если у вас есть отдельные сюжетные объекты, которые вы хотите показать *. Если вы измените позицию 'XData', вы меняете существующий график, поэтому' hold on' там не действует. Вам нужно будет «удерживать» между двумя вызовами «plot», чтобы они оба были показаны. – Suever

ответ

1

Целью hold on является, чтобы позволить вам иметь несколько объектов сюжета на одних и тех же осях. Таким образом, вам понадобится инструкция hold on между двумя вашими вызовами plot, чтобы убедиться, что оба они показаны.

type1 = plot(x(1)-1,y(1),'s','Parent',h,'MarkerFaceColor','red','MarkerSize',20); 
hold on 
type2 = plot(x(1)-1,y(1),'s','Parent',h,'MarkerFaceColor','green','MarkerSize',40); 

Теперь, когда вы изменяете XData свойства одного из этих участков, то есть изменение существующего объекта участка, а старый XData значения не будет видно (hold on не имеет ничего общего с содержание участков, только сами сюжетные объекты).

Если вы хотите построить несколько значений x, вы можете создать дополнительные сюжетные объекты (по одному для каждой позиции x).

plot(2, y(1)) 
plot(6, y(1)) 
plot(8, y(1)) 

Лучший способ это просто сюжет все точек фронт в ваших начальных plot команд.

plot(x, y, 's', 'Parent', h, 'MarkerFaceColor', 'r', 'MarkerSize', 20); 
hold on 
plot(x, y, 's', 'Parent', h, 'MarkerFaceColor', 'g', 'MarkerSize', 40); 
+0

@ Suever теперь мы можем показать точки, если эти точки относятся к типам автомобилей, как мы можем перемещать эти точки в поезде случайно? – user3332603

+0

@ user3332603 что вы имеете в виду случайно? – Suever

+0

@ Suever у нас есть массив содержит 100 случайных чисел между 1: 5 (ссылаясь на 5 типов точек/вагонов), нам нужно перемещать эти точки в поезде последовательно с промежутком между каждыми двумя автомобилями – user3332603

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

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