Heim > Backend-Entwicklung > Python-Tutorial > Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

高洛峰
Freigeben: 2016-10-18 14:12:52
Original
2340 Leute haben es durchsucht

Matplotlib ist die bekannteste Zeichenbibliothek von Python. Sie bietet eine Reihe von Befehls-APIs ähnlich wie Matlab, die sich sehr gut für interaktives Zeichnen eignen. Und es kann auch problemlos als Zeichensteuerung verwendet und in GUI-Anwendungen eingebettet werden. Die Dokumentation ist recht vollständig, die Galerieseite enthält Hunderte von Miniaturansichten und nach dem Öffnen verfügen alle über Quellprogramme. Wenn Sie also einen bestimmten Diagrammtyp zeichnen müssen, durchsuchen/kopieren/einfügen Sie einfach diese Seite und schon sind Sie fertig.

In diesem Artikel verwenden wir matplotlib, um Schritt für Schritt den einfachsten Balken zum komplexen Balken zu konstruieren. Was ist der einfachste Balken? Sie werden wissen, wie einfach er ist, indem Sie die folgende Aussage lesen:

import matplotlib.pyplot as plt 
  
plt.bar(left = 0,height = 1)
plt.show()
Nach dem Login kopieren

Ausführungseffekt:

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Ja, drei Just Ein Satz, der einfachste Zeichensatz, den ich je gesehen habe. Zuerst haben wir matplotlib.pyplot importiert, dann direkt seine Bar-Methode aufgerufen und schließlich show verwendet, um das Bild anzuzeigen. Lassen Sie mich die beiden Parameter in bar erklären:

links: die Position des linken Randes der Spalte. Wenn wir 1 angeben, ist der x-Wert des linken Randes der aktuellen Spalte 1,0

Höhe: Dies ist die Höhe der Spalte, die der Wert der Y-Achse

links ist. Zusätzlich zur Verwendung eines separaten Werts (dies ist eine Spalte) kann Höhe auch durch ersetzt werden ein Tupel (dies stellt mehrere Rechtecke dar). Zum Beispiel im folgenden Beispiel:

import matplotlib.pyplot as plt
  
plt.bar(left = (0,1),height = (1,0.5))
plt.show()
Nach dem Login kopieren

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Sie können sehen, dass left = (0,1) bedeutet, dass insgesamt zwei Rechtecke vorhanden sind und der linke Rand davon der erste ist 0, der linke Rand des zweiten ist 1. Der Höhenparameter ist derselbe.

Natürlich denken Sie vielleicht immer noch, dass diese beiden Rechtecke „zu dick“ sind. An dieser Stelle können wir ihre Breite festlegen, indem wir den Breitenparameter des Balkens angeben.

import matplotlib.pyplot as plt
  
plt.bar(left = (0,1),height = (1,0.5),width = 0.35)
plt.show()
Nach dem Login kopieren

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Zu diesem Zeitpunkt muss ich die Beschreibung der x- und y-Achse angeben. Beispielsweise ist auf der X-Achse das Geschlecht und auf der Y-Achse die Anzahl der Personen dargestellt. Auch die Implementierung ist sehr einfach, schauen Sie sich den Code an:

import matplotlib.pyplot as plt
  
plt.xlabel(u'性别')
plt.ylabel(u'人数')
plt.bar(left = (0,1),height = (1,0.5),width = 0.35)
plt.show()
Nach dem Login kopieren

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Beachten Sie, dass u hier für Chinesisch verwendet werden muss (es scheint nicht über 3.0 verwendet zu werden). , ich verwende 2.7), da Matplotlib nur Unicode unterstützt. Als Nächstes veranschaulichen wir jeden Balken auf der x-Achse. Beispielsweise ist das erste „männlich“ und das zweite „weiblich“.

import matplotlib.pyplot as plt
  
plt.xlabel(u'性别')
plt.ylabel(u'人数')
  
plt.xticks((0,1),(u'男',u'女'))
  
plt.bar(left = (0,1),height = (1,0.5),width = 0.35)
  
plt.show()
Nach dem Login kopieren

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Die Verwendung von plt.xticks ähnelt der zuvor erwähnten Verwendung von left und height. Wenn Sie mehrere Balken haben, handelt es sich um ein Tupel mit mehreren Dimensionen. Das erste ist die Position des Textes und das zweite ist die spezifische Textbeschreibung. Hier gibt es jedoch ein Problem. Offensichtlich ist die von uns angegebene Position etwas „versetzt“, und der ideale Zustand sollte in der Mitte jedes Rechtecks ​​liegen. Sie können (0,1)=>( (0 0.35)/2 , (1 0.35)/2 ) ändern, aber das ist problematischer. Wir können den Text zentrieren, indem wir direkt align="center" in der Balkenmethode angeben

import matplotlib.pyplot as plt
  
plt.xlabel(u'性别')
plt.ylabel(u'人数')
  
plt.xticks((0,1),(u'男',u'女'))
  
plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center")
  
plt.show()
Nach dem Login kopieren

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Als nächstes können wir dem Symbol auch einen Titel hinzufügen.

plt.title(u"性别比例分析")
Nach dem Login kopieren

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Natürlich ist auch die Legende unverzichtbar:

import matplotlib.pyplot as plt
  
plt.xlabel(u'性别')
plt.ylabel(u'人数')
  
  
plt.title(u"性别比例分析")
plt.xticks((0,1),(u'男',u'女'))
rect = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center")
  
plt.legend((rect,),(u"图例",))
  
plt.show()
Nach dem Login kopieren

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Achten Sie auf die Legende hier Methode, die darin enthaltenen Parameter müssen Tupel sein. Selbst wenn Sie nur eine Legende haben, wird diese nicht korrekt angezeigt.

Als nächstes können wir auch den Y-Wert seines spezifischen Punktes auf jedem Rechteck markieren. Hier müssen wir eine allgemeine Methode verwenden:

def autolabel(rects):
    for rect in rects:
        height = rect.get_height()
        plt.text(rect.get_x()+rect.get_width()/2., 1.03*height, '%s' % float(height))
Nach dem Login kopieren
Die Parameter von plt.text sind: x-Koordinate, y-Koordinate und der anzuzeigende Text. Daher lautet der Aufrufcode wie folgt:

import matplotlib.pyplot as plt
  
def autolabel(rects):
    for rect in rects:
        height = rect.get_height()
        plt.text(rect.get_x()+rect.get_width()/2., 1.03*height, '%s' % float(height))
  
plt.xlabel(u'性别')
plt.ylabel(u'人数')
  
  
plt.title(u"性别比例分析")
plt.xticks((0,1),(u'男',u'女'))
rect = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center")
  
plt.legend((rect,),(u"图例",))
autolabel(rect)
  
plt.show()
Nach dem Login kopieren

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

An diesem Punkt ist die Grafik im Grunde vollständig, aber Sie können sehen, dass Sie oben ein Rechteck haben , was nicht sehr schön ist. Es wäre am besten, mit etwas Abstand herauszukommen. Ich habe keine spezifischen Eigenschaften für diese Einstellung gefunden. Allerdings habe ich es mit einem kleinen Trick geschafft. Es ist der yerr-Parameter des bar-Attributs. Sobald dieser Parameter festgelegt ist, wird auf dem entsprechenden Rechteck eine vertikale Linie angezeigt. Ich weiß nicht, was das bewirkt. Wenn ich diesen Wert jedoch auf einen sehr kleinen Wert setze, wird der darüber liegende Platz automatisch geräumt. Wie im Bild gezeigt:

rect = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center",yerr=0.000001 )

Detaillierte Erklärung von Python mithilfe der Matplotlib-Zeichnung

Es wurde noch nicht gefunden, ob die linke und rechte Seite leer gelassen werden können (der xerr-Parameter funktioniert nicht)


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage