2017-06-06 6 views
0

Ich erstelle gerade eine Grafik, die die Korrelation von Absorption und Konzentration analysiert (Beer'sches Gesetz). Während ich den Graph erstellt habe, habe ich ein paar Probleme bekommen, und jetzt stecke ich fest. Meine Diagramme werden nicht in meinem Diagramm angezeigt. Liegt es an einem Platzierungsfehler? Wenn möglich, möchte ich die Ticks, Labels und Titel im selben (oder ähnlichen Format) belassen. Sorry im Voraus für die Schlamperei, versuchen, die Funktion herunter zu bekommen, bevor ich es schön mache. Aber egal, hier ist der Code:Warum werden meine Punkte nicht geplottet?

#importing matplotlib to create a graph 
import matplotlib.pyplot as plt 



#ploting out the points while labeling the graph 
plt.plot([1.95E-06, 9.75E-06, 1.95E-05, 9.75E-05, 1.95E-04, 9.75E-04, 1.95E- 
03],[0.2,0.4,0.6,0.8,1.0,1.2,1.4]) 
plt.xticks([1, 2, 3, 4, 5, 6, 7], [str('1.95E-03'), str('9.75E-04'), 
str('1.95E-04'), str('9.75E-05'),str('1.95E-05'), str('9.75E-06'), 
str('1.95E-06')]) 
plt.title('Red') 
plt.ylabel('Absorption') 
plt.xlabel('Concentration') 
plt.grid(True) 
plt.show() 
+0

Sie jetzt eine der Antworten können auf [akzeptieren] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) so dass diese Frage als gelöst markiert ist. Wenn Sie dies noch nicht getan haben, sollten Sie sich auch die Seite [Tour] ansehen. – ImportanceOfBeingErnest

Antwort

0

Ihre Daten haben x -Werte deutlich unter 0,01, während Ihre Ticks bei 1 beginnen. Ihre Daten befinden sich also links von der Grafik. Ich würde vorschlagen, eine logarithmische X-Achse zu verwenden, genau wie im folgenden Beispiel. Dies wird auch das Problem beheben, dass die x-Werte verschiedene Größenordnungen haben. Beachten Sie, dass ich die Tick-Strings auch in umgekehrter Reihenfolge ankreuze, vorausgesetzt, Sie haben sie fälschlicherweise umgekehrt geschrieben. Wenn nicht, bitte einfach weitermachen und sie umkehren!

#importing matplotlib to create a graph 
import matplotlib.pyplot as plt 


x = [1.95e-06, 9.75e-06, 1.95e-05, 9.75e-05, 1.95e-04, 9.75e-04, 1.95e-03] 
#ploting out the points while labeling the graph 
plt.semilogx(x ,[0.2,0.4,0.6,0.8,1.0,1.2,1.4]) 
plt.xticks(x, [str('1.95E-03'), str('9.75E-04'), str('1.95E-04'), str('9.75E-05'),str('1.95E-05'), str('9.75E-06'), str('1.95E-06')], rotation=45) 
plt.title('Red') 
plt.ylabel('Absorption') 
plt.xlabel('Concentration') 
plt.grid(True) 
plt.tight_layout() 
plt.savefig('points.png') 
plt.show() 

Semilogarithmic plot

2

Ihre xticks sind vollständig aus dem Bereich, in dem Sie Ihre Daten Leben. Entfernen Sie die Zeile, die die xticks setzt und Ihr Grundstück ist in Ordnung

import matplotlib.pyplot as plt 

plt.plot([1.95E-06, 9.75E-06, 1.95E-05, 9.75E-05, 1.95E-04, 9.75E-04, 1.95E-03], 
     [0.2,0.4,0.6,0.8,1.0,1.2,1.4]) 
plt.title('Red') 
plt.ylabel('Absorption') 
plt.xlabel('Concentration') 
plt.grid(True) 
plt.show() 

enter image description here

Wenn Sie Ihre benutzerdefinierte verwenden möchten Zecken, müssen Sie sie in den Datenbereich setzen, also irgendwo zwischen 0 und 0,002 und nicht zwischen 1 und 7.

0

Das erste Argument zu plt.xticks sollte x-coords (nicht Tick-Indizes) sein.

Verwandte Themen