2016-04-07 5 views
2

Hier Entfernen ist ein Beispiel für Codekleinere Zecken in x-Achse des semilogx Grundstücks in Matlab

x = 0:1000; 
y = log(x); 
semilogx(x,y) 

semilogx picture

Ich mag die kleinen Strichmarkierungen zwischen 10^0 und 10^1 auf entfernen die X-Achse.

Ich habe versucht:

set(gca,'XminorTick','off') 

aber es ist nicht das aus gutem Grund

+0

Ich denke, das könnte ein Fehler mit MATLAB ' 'sein log'' Skalierung Achsen. – excaza

+0

Nun, vielleicht nicht ein Fehler, da Sie wirklich kleine Häkchen haben sollten, um klar zu machen, dass eine Log-Skala verwendet wird, aber zumindest sollte dokumentiert werden, dass sie für Log-Skalen erzwungen werden. Es scheint, als ob es in R2014b mit HG2 eingeführt wurde, da dieses Verhalten in R2014a nicht vorhanden ist. – excaza

+0

Ab R2016b funktioniert der Befehl des OP. – iled

Antwort

1

Es gibt wirklich keine gute Möglichkeit, dies zu tun, nicht funktioniert. Es empfiehlt sich immer, explizit anzugeben, dass eine Protokollskalierung für ein Diagramm verwendet wird.

Wenn Sie wirklich wollen, wäre es am einfachsten, wenn Sie eine Log-Transformation für Ihre Daten durchführen und diese in einer normalen linearen Skala auftragen. Geben Sie dann benutzerdefinierte Hilfsstrichsbeschriftungen an, damit diese als logarithmische Skala erscheint.

%// Plot after performing log transform of your xdata 
plot(log10(x), y) 

%// Tick locations 
ticks = 0:3; 

%// Create custom tick labels 
labels = arrayfun(@(x)sprintf('10^%d', x), ticks, 'uni', 0); 

%// Update the ticks and ticklabels 
set(gca, 'xtick', ticks, 'XTickLabels', labels) 

enter image description here

Verwandte Themen