2014-03-19 5 views
5

Ich versuche herauszufinden, wie eine benutzerdefinierte Anzahl von Teilstrichen auf der X-Achse eines Plots gesetzt werden kann, das ich in MATLAB erstelle, aber ich bin nicht sicher, ob das ist möglich. Ich sah this question, die die gleiche Sache zu fragen scheint, aber das war nicht hilfreich, daFestlegen einer bestimmten Anzahl von Teilstrichen im MATLAB-Plot

set(gca,'XTick',tickVector); 

setzt sich die Position der Zecken, nicht die Anzahl der Zecken. Mein Code ist wie folgt.

rangeBegin = 100000; 
rangeEnd = 200000; 
numberOfXTicks = 5; 

plot(data(:, 1)); 
xAxisVals = linspace(rangeBegin, rangeEnd, numberOfXTicks); 
%set(gca,'XTick',rangeBegin:rangeEnd); % Doesn't work as expected 
set(gca,'XTickLabel',xAxisVals); 

So in diesem Beispiel, ich suche nur nach einer Möglichkeit, MATLAB zu zwingen, das Grundstück mit 5 Ticks auf der x-Achse zu schaffen, um die 5 XTickLabels übereinstimmen, die ich gesetzt haben.

Daten sind ein Array von Doppel, das ist ungefähr < 3000x1>.

EDIT: Ich sollte auch hinzufügen, dass ich meine X-Achse Werte aus einem separaten Array sein soll. Das oben gezeigte Datenfeld entspricht einem Zeitfeld (nicht gezeigt ... mein schlechtes), und jeder Wert in dem Datenfeld hat einen entsprechenden Wert in dem Zeitfeld. Da ich einen Bereich aus dem Datenarray auswähle, möchte ich die entsprechenden Zeitwerte auswählen und diese als x-Label verwenden. Aber natürlich möchte ich keine 3000 Zeitmarken auf meiner X-Achse haben. Hoffentlich ist das klarer.

+0

Die x-Achse in Ihrem Diagramm verläuft von 1 bis zur Länge der Daten. Ich schätze, dass Sie versuchen, Ticks von dem angezeigten Teil der X-Achse zu setzen, also kann ich sie nicht sehen. Was soll die x-Achse sein? –

+0

Ich habe meine Frage bearbeitet. Grundsätzlich habe ich auch eine Variable mit dem Namen: Zeit <3000x1>, die ich verwenden möchte, um meine X-Achsen-Etiketten zu generieren. – SimonSaysBleed

+0

versuchen Sie es mit Plot (Zeit, Daten (:, 1)) und sehen, ob das bessere Ergebnisse gibt –

Antwort

6
numberOfXTicks = 5; 

h = plot(data(:, 1)); 
xData = get(h,'XData'); 
set(gca,'Xtick',linspace(xData(1),xData(end),numberOfXTicks)) 
Verwandte Themen