2016-05-03 10 views
0

Ich habe zwei Arrays, die ich mit zwei Achsen plotten möchte. Einer verwendet ein Bar-Plot und der zweite eine reguläre Linie.Wie man Graphen mit unterschiedlichen Grenzwerten erstellt mit Übereinstimmung plotyy

Die linke Yaxis ist der Bereich und die linke Seite ist die Flächenänderung in Prozent. X-Achse ist das Datum der Messung.

Mein Problem ist, dass die zweite Achse nicht mit den Punkten des Balkendiagramms übereinstimmt. Ich möchte, dass die Punkte an derselben x, y-Stelle des Plots liegen.

Code: 
date= [714262 724124 731733 734732 736209];  %matlab dates 
area = [ 60154 48444 38991 29487 24084];   % area 
area_change = [0 0.1947 0.3518 0.5098 0.5996 ]; %change in percent 

figure(7) 
[AX, T1, T2] = plotyy(date, area ,date, area_change, 'bar', 'line') 
set(TX(2), 'ycolor', 'r') 
set(TX(2),'YDir','reverse') %% reversed to show area decrease. 

Antwort

0

Ich bin mir Ihrer Frage nicht ganz sicher. Ihr korrigierter Code stimmt mit der Datumsachse überein:

date= [714262 724124 731733 734732 736209];  %matlab dates 
area = [ 60154 48444 38991 29487 24084];   % area 
area_change = [0 0.1947 0.3518 0.5098 0.5996 ]; %change in percent 

figure 
[AX, T1, T2] = plotyy(date, area ,date, area_change, 'bar', 'line') 
set(AX(2), 'ycolor', 'r') 
set(AX(2),'YDir','reverse') 

Oder möchten Sie, dass die Linie durch die Leiste geht? Wenn dies der Fall ist, brauchen Sie den Wert von area_change nicht.

date= [714262 724124 731733 734732 736209];  %matlab dates 
area = [ 60154 48444 38991 29487 24084];   % area 
area_change = [0 0.1947 0.3518 0.5098 0.5996 ]; %change in percent 

figure 
bar(date, area) 
hold on; 
plot(date, area) 
Verwandte Themen