2017-08-18 4 views
1

Ich versuche, ein Histogramm mit dem folgenden Skript zu plotten:Octave Handlung bricht bei der Einstellung Achsenskalierung anmelden

for i = 1:100 
    edges(i) = i * 10; 
end 

[n] = histc(x, edges); 
bar(edges, n, 'histc'); 

Wenn ich versuche, die Achse auf einer logarithmischen Skala zu setzen mit

set(gca, 'xscale', 'log') 

ich erhalte die folgende Meldung

warning: opengl_renderer: data values greater than float capacity. (1) Scale data, or (2) Use gnuplot 

die Daten für das Histogramm (x Vektor) ist die Spalte mq135 dieser csv-Datei:

Ich konnte keinen Weg finden, den Maßstab der Achse zu loggen, irgendwelche Ideen, was könnte dieses Problem verursachen? Die Nachricht ist ziemlich klar über die Werte, aber es macht keinen Sinn für mich und ein Histogramm mit plot.ly geplottet auszuarbeiten.

Danke!

+0

Sie setzen den 'X' Skala anmelden auf einem Balkendiagramm anmelden? Das scheint ziemlich seltsam zu sein. Die Balken würden eingequetscht werden. Vielleicht werden die Balkenkanten so klein gemacht, dass der Renderer sich beschwert. Bist du sicher, dass du "yscale" nicht loggen willst? –

+0

und BTW, Erstellen von 'Kanten' auf diese Weise ist sehr ... ungewöhnlich. Verwenden Sie 'Kanten = 10: 10: 1000' – Andy

+0

danke für die schnellen Antworten! Ich wollte beide Achsen loggen lassen, beide Achsen hatten einen großen Wertebereich! @Andy Ich habe seit Ewigkeiten keine Oktave mehr benutzt und ich brauchte nur ein paar einfache Skripte wie diese, ich habe alles sehr intuitiv gemacht, hehe, danke für den Tipp! – pedrin1001

Antwort

1

Sind Sie wirklich sicher, dass Sie die xscale als Protokoll und nicht die Yscale wollen? Dies verwendet hist aber mit yscale Satz

base_url = "https://github.com/pedroscaff/sensor-platform-data-analysis/raw/master/data" 
fn = "prenzl-tempelh.csv"; 
if (! exist (fn, "file")) 
    urlwrite (fullfile (base_url, fn), fn); 
endif 

# skipp headerline, extract only mq135 
mq135 = csvread (fn, 1, 0)(:, 2); 
hist (mq135, 0:20:1000); 
xlabel ("MQ-135 gas sensor raw data?") 
set(gca, 'yscale', 'log') 
set(gca, "xtick", 0:100:1000) 
grid on 
print ("out.png"); 

gibt

hist plot, yscale log

+0

das ist perfekt! Danke vielmals! – pedrin1001