2016-06-21 29 views
0

Wir wollen einen Punkt zeigen „genannt Typ1“ in verschiedenen Positionen (2,8, ..), haben wir diesen Code:Ansicht einen Punkt in verschiedenen Positionen

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; 

Aber nur die letzte Position wird gezeigt

Wie halten Sie jeden angezeigten Punkt in der Abbildung?

Dank inadvance

+0

Anstatt die 'XData' zu ändern, müssen Sie ein * neues * Plot mit jedem anderen Wert von x erstellen, wenn Sie die alten sehen wollen. – Suever

+0

@Wenn wir wollen, dass die Punkte in der gleichen Zahl angezeigt werden (ohne eine neue Zahl zu öffnen), sollte dies nicht mit Halt gemacht werden ?? – user3332603

+0

'Hold on 'funktioniert *, wenn Sie separate Plot-Objekte haben, die Sie anzeigen möchten *. Wenn Sie die 'XData'-Position ändern, ändern Sie einen vorhandenen Plot so, dass 'Hold on' dort keine Wirkung hat. Sie werden ein "Festhalten" zwischen den beiden Aufrufen von "plotten" wollen, so dass beide angezeigt werden. – Suever

Antwort

1

Der Zweck hold on ist mehrere Plot haben, damit Objekte auf den gleichen Achsen. Sie werden also eine hold on Anweisung zwischen Ihren zwei plot Anrufen wollen, um sicherzustellen, dass sie beide angezeigt werden.

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); 

Wenn Sie nun die XData Eigenschaft eines dieser Grundstücke zu ändern, das heißt Änderung einer bestehenden Plot Objekt, und der alte XData Wert wird nicht sichtbar sein würde (hold on hat nichts mit dem zu tun die Inhalte der Plots, nur die Plot-Objekte selbst).

Wenn Sie mehrere x-Werte plotten möchten, können Sie zusätzliche Plotobjekte erstellen (eines für jede x-Position).

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

Ein besserer Weg ist nur alle vorne die Punkte in Ihren ersten plot Befehlen plotten.

+0

@ Suever jetzt können wir die Punkte zeigen, wenn diese Punkte sich auf Autotypen beziehen, wie können wir diese Punkte in einem Zug nach dem Zufallsprinzip bewegen? – user3332603

+0

@ user3332603 was meinst du zufällig? – Suever

+0

@ Suever wir haben ein Array enthält 100 Zufallszahlen zwischen 1: 5 (bezogen auf 5 Arten von Punkten/Autos) müssen wir diese Punkte in einem Zug nacheinander mit einer Lücke zwischen den beiden Autos bewegen – user3332603