Heim Backend-Entwicklung Python-Tutorial Einführung in die Zeichenmethode mithilfe der Zeichenbibliothek in Python

Einführung in die Zeichenmethode mithilfe der Zeichenbibliothek in Python

May 12, 2017 am 10:49 AM
matplotlib numpy python 绘图

matplotlib ist die bekannteste Zeichnungsbibliothek von Python. In diesem Artikel erfahren Sie, wie Sie mit matplotlib+numpy eine Vielzahl von Zeichnungen zeichnen können, darunter gefüllte Diagramme, Streudiagramme und Balkendiagramme , Freunde in Not können sich an sie wenden.

Vorwort

matplotlib ist die bekannteste Zeichenbibliothek in Python. Sie bietet eine Reihe von Befehlen ähnlich der MatlabAPI, ideal für interaktives Mapping. In diesem Artikel werden mehrere in Matplot unterstützte und häufig in der Analyse verwendete Diagramme in Form von Beispielen analysiert. Dazu gehören gefüllte Diagramme, Streudiagramme, Balkendiagramme, Konturdiagramme und 3D-Diagramme. Werfen wir einen Blick auf die detaillierte Einführung:

1. Fülldiagramm >

Referenzcode


from matplotlib.pyplot import *
x=linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
fill_between(x,y1,y2,where=(y1>=y2),color='red',alpha=0.25)
fill_between(x,y1,y2,where=(y<>y2),color=&#39;green&#39;,alpha=0.25)
plot(x,y1)
plot(x,y2)
show()
Nach dem Login kopieren
Kurzanalyse

Hier kommt hauptsächlich die

Funktionfill_between zum Einsatz. Diese Funktion ist leicht zu verstehen. Sie besteht darin, das x-Achsen-Array und die beiden zu füllenden y-Achsen-Arrays zu übergeben und dann den Füllbereich zu übergeben Füllbereich; schließlich können Sie Füllfarbe, Transparenz und andere geänderte Parameter hinzufügen. Natürlich hat die Funktion auch erweiterte Verwendungsmöglichkeiten. Weitere Informationen finden Sie in der Verwendung von fill_between oder in der Hilfedokumentation. where=

Renderingfill_between

2. Streudiagramme

Referenzcode


Kurze Analyse

from matplotlib.pyplot import *
n = 1024
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n)
T = np.arctan2(Y,X)
scatter(X,Y, s=75, c=T, alpha=.5)
xlim(-1.5,1.5)
ylim(-1.5,1.5)
show()
Nach dem Login kopieren

Zuerst stellen wir Numpys vor Offensichtlich ist dies eine Funktion, die eine Normalverteilung erzeugt. Diese Funktion akzeptiert drei Parameter, die den Mittelwert, die Standardabweichung und die Länge des generierten Arrays darstellen. Sehr leicht zu merken.

Dann gibt es die Funktion

. Diese Funktion akzeptiert zwei Parameter, die das y-Array bzw. das x-Array darstellen, und gibt dann den entsprechenden normal-Wert zurück, und das Ergebnis wird im Bogenmaß angegeben.

Als nächstes wird die arctan2-Methode zum Zeichnen eines Streudiagramms verwendet. Zuerst werden natürlich die x- und y-Arrays übergeben, und dann stellt der s-Parameter die Skalierung dar, also die Größe der Streuung Punkte; der c-Parameter stellt die Farbe dar, ich werde ihn übergeben. Es wird ein nach Winkel unterteiltes Array übergeben, das der Farbe jedes Punktes entspricht (obwohl ich nicht weiß, wie es entspricht, aber es scheint so zu sein eine relative Konvertierung basierend auf anderen Elementen im Array ist hier nicht wichtig, es ist sowieso dasselbe. Weisen Sie einfach der Farbe den gleichen Wert zu. Der letzte ist der Parameter arctan(y/x), der die Transparenz des Punktes darstellt.

Informationen zur erweiterten Verwendung der scatter-Funktion finden Sie in der offiziellen Dokument-Scatter-Funktion oder im Hilfedokument. alpha

Stellen Sie abschließend nur noch den Koordinatenbereich ein.

scatter

Rendering

3. Balkendiagramme

Referenzcode


Kurzanalyse

from matplotlib.pyplot import *
n = 12
X = np.arange(n)
Y1 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)
Y2 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)
bar(X, +Y1, facecolor=&#39;#9999ff&#39;, edgecolor=&#39;white&#39;)
bar(X, -Y2, facecolor=&#39;#ff9999&#39;, edgecolor=&#39;white&#39;)
for x,y in zip(X,Y1):
 text(x+0.4, y+0.05, &#39;%.2f&#39; % y, ha=&#39;center&#39;, va= &#39;bottom&#39;)
for x,y in zip(X,Y2):
 text(x+0.4, -y-0.05, &#39;%.2f&#39; % y, ha=&#39;center&#39;, va= &#39;top&#39;)
xlim(-.5,n)
xticks([])
ylim(-1.25,+1.25)
yticks([])
show()
Nach dem Login kopieren

Hinweis: Sie müssen das Pylab importieren Paket manuell erstellen, andernfalls wird die Leiste nicht gefunden. . . Verwenden Sie zunächst die

-Funktion von Numpy, um ein Array von [0,1,2,…,n] zu generieren. (Sie können auch Linspace verwenden)

Zweitens verwenden Sie die

-Funktion von Numpy, um ein gleichmäßig verteiltes Array zu generieren, indem Sie drei Parameter übergeben, die die untere Grenze, die obere Grenze bzw. die Array-Länge darstellen. Und verwenden Sie dieses Array, um die Daten zu generieren, die angezeigt werden müssen. arange

Dann kommt die Verwendung der Balkenfunktion. Die grundlegende Verwendung ähnelt der vorherigen Darstellung und Streuung, wobei die horizontalen und vertikalen Koordinaten sowie einige dekorative Parameter übergeben werden.

uniformDann müssen wir die

-Schleife

verwenden, um Zahlen für das Histogramm anzuzeigen: Verwenden Sie die

-Funktion von Python, um X und Y1 paarweise zu koppeln und eine Schleife zu durchlaufen, um den jeweiligen Wert zu erhalten Datenposition und verwenden Sie dann die Funktion for, um an dieser Position eine -Zeichenfolge anzuzeigen (achten Sie auf die detaillierte Anpassung der Position). text übergibt die horizontalen und vertikalen Koordinaten, die anzuzeigende Zeichenfolge, der Parameter zip gibt die horizontale Ausrichtung an und der Parameter va gibt die vertikale Ausrichtung an. textPassen Sie abschließend den Koordinatenbereich an und heben Sie die Skalierung der horizontalen und vertikalen Koordinaten auf, damit es schön bleibt. haInformationen zur spezifischen Verwendung der Funktion

finden Sie in der Verwendung der Leistenfunktion oder im Hilfedokument.

Renderingbar

4. Konturdiagramme

Referenzcode


from matplotlib.pyplot import *
def f(x,y):
 return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
n = 256
x = np.linspace(-3,3,n)
y = np.linspace(-3,3,n)
X,Y = np.meshgrid(x,y)
contourf(X, Y, f(X,Y), 8, alpha=.75, cmap=cm.hot)
C = contour(X, Y, f(X,Y), 8, colors=&#39;black&#39;, linewidth=.5)
clabel(C, inline=1, fontsize=10)
show()
Nach dem Login kopieren

简要分析

首先要明确等高线图是一个三维立体图,所以我们要建立一个二元函数f,值由两个参数控制,(注意,这两个参数都应该是矩阵)。

然后我们需要用numpy的meshgrid函数生成一个三维网格,即,x轴由第一个参数指定,y轴由第二个参数指定。并返回两个增维后的矩阵,今后就用这两个矩阵来生成图像。

接着就用到coutourf函数了,所谓contourf,大概就是contour fill的意思吧,只填充,不描边;这个函数主要是接受三个参数,分别是之前生成的x、y矩阵和函数值;接着是一个整数,大概就是表示等高线的密度了,有默认值;然后就是透明度和配色问题了,cmap的配色方案这里不多研究。

随后就是contour函数了,很明显,这个函数是用来描线的。用法可以类似的推出来,不解释了,需要注意的是他返回一个对象,这个对象一般要保留下来个供后续的加工细化。

最后就是用clabel函数来在等高线图上表示高度了,传入之前的那个contour对象;然后是inline属性,这个表示是否清除数字下面的那条线,为了美观当然是清除了,而且默认的也是1;再就是指定线的宽度了,不解释,。

效果图

五、点阵图

参考代码


from matplotlib.pyplot import *
def f(x,y):
 return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
n = 10
x = np.linspace(-3,3,3.5*n)
y = np.linspace(-3,3,3.0*n)
X,Y = np.meshgrid(x,y)
Z = f(X,Y)
imshow(Z,interpolation=&#39;nearest&#39;, cmap=&#39;bone&#39;, origin=&#39;lower&#39;)
colorbar(shrink=.92)
show()
Nach dem Login kopieren

简要分析

这段代码的目的就是将一个矩阵直接转换为一张像照片一样的图,完整的进行显示。

前面的代码就是生成一个矩阵Z,不作解释。

接着用到了imshow函数,传人Z就可以显示出一个二维的图像了,图像的颜色是根据元素的值进行的自适应调整,后面接了一些修饰性的参数,比如配色方案(cmap),零点位置(origin)。

最后用colorbar显示一个色条,可以不传参数,这里传进去shrink参数用来调节他的长度。

效果图

六、3D图

参考代码


import numpy as np
from pylab import *
from mpl_toolkits.mplot3d import Axes3D
fig = figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)
ax.contourf(X, Y, Z, zdir=&#39;z&#39;, offset=-2, cmap=plt.cm.hot)
ax.set_zlim(-2,2)
show()
Nach dem Login kopieren

简要分析

有点麻烦,需要用到的时候再说吧,不过原理也很简单,跟等高线图类似,先画图再描线,最后设置高度,都是一回事。

效果图

总结

【相关推荐】

1. Python免费视频教程

2. Python基础入门教程

3. Python在数据科学中的应用

Das obige ist der detaillierte Inhalt vonEinführung in die Zeichenmethode mithilfe der Zeichenbibliothek in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP und Python: Verschiedene Paradigmen erklärt PHP und Python: Verschiedene Paradigmen erklärt Apr 18, 2025 am 12:26 AM

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

Wählen Sie zwischen PHP und Python: Ein Leitfaden Wählen Sie zwischen PHP und Python: Ein Leitfaden Apr 18, 2025 am 12:24 AM

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

Kann Visual Studio -Code in Python verwendet werden Kann Visual Studio -Code in Python verwendet werden Apr 15, 2025 pm 08:18 PM

VS -Code kann zum Schreiben von Python verwendet werden und bietet viele Funktionen, die es zu einem idealen Werkzeug für die Entwicklung von Python -Anwendungen machen. Sie ermöglichen es Benutzern: Installation von Python -Erweiterungen, um Funktionen wie Code -Abschluss, Syntax -Hervorhebung und Debugging zu erhalten. Verwenden Sie den Debugger, um Code Schritt für Schritt zu verfolgen, Fehler zu finden und zu beheben. Integrieren Sie Git für die Versionskontrolle. Verwenden Sie Tools für die Codeformatierung, um die Codekonsistenz aufrechtzuerhalten. Verwenden Sie das Lining -Tool, um potenzielle Probleme im Voraus zu erkennen.

Kann gegen Code in Windows 8 ausgeführt werden Kann gegen Code in Windows 8 ausgeführt werden Apr 15, 2025 pm 07:24 PM

VS -Code kann unter Windows 8 ausgeführt werden, aber die Erfahrung ist möglicherweise nicht großartig. Stellen Sie zunächst sicher, dass das System auf den neuesten Patch aktualisiert wurde, und laden Sie dann das VS -Code -Installationspaket herunter, das der Systemarchitektur entspricht und sie wie aufgefordert installiert. Beachten Sie nach der Installation, dass einige Erweiterungen möglicherweise mit Windows 8 nicht kompatibel sind und nach alternativen Erweiterungen suchen oder neuere Windows -Systeme in einer virtuellen Maschine verwenden müssen. Installieren Sie die erforderlichen Erweiterungen, um zu überprüfen, ob sie ordnungsgemäß funktionieren. Obwohl VS -Code unter Windows 8 möglich ist, wird empfohlen, auf ein neueres Windows -System zu upgraden, um eine bessere Entwicklungserfahrung und Sicherheit zu erzielen.

Ist die VSCODE -Erweiterung bösartig? Ist die VSCODE -Erweiterung bösartig? Apr 15, 2025 pm 07:57 PM

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.

Python vs. JavaScript: Die Lernkurve und Benutzerfreundlichkeit Python vs. JavaScript: Die Lernkurve und Benutzerfreundlichkeit Apr 16, 2025 am 12:12 AM

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

PHP und Python: Ein tiefes Eintauchen in ihre Geschichte PHP und Python: Ein tiefes Eintauchen in ihre Geschichte Apr 18, 2025 am 12:25 AM

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

So führen Sie Programme in der terminalen VSCODE aus So führen Sie Programme in der terminalen VSCODE aus Apr 15, 2025 pm 06:42 PM

Im VS -Code können Sie das Programm im Terminal in den folgenden Schritten ausführen: Erstellen Sie den Code und öffnen Sie das integrierte Terminal, um sicherzustellen, dass das Codeverzeichnis mit dem Terminal Working -Verzeichnis übereinstimmt. Wählen Sie den Befehl aus, den Befehl ausführen, gemäß der Programmiersprache (z. B. Pythons Python your_file_name.py), um zu überprüfen, ob er erfolgreich ausgeführt wird, und Fehler auflösen. Verwenden Sie den Debugger, um die Debugging -Effizienz zu verbessern.

See all articles