Verwandte Lernempfehlungen: Python-Tutorial
Zunächst möchte ich Ihnen eine weitere sehr nützliche Datenanalysebibliothek vorstellen – matplotlib.
Wenn Sie an mathematischen Modellierungswettbewerben im College teilgenommen oder MATLAB verwendet haben, werden Sie von der Zeichenfunktion in dieser Software tief beeindruckt sein. MATLAB kann verschiedene Funktionen und numerische Verteilungsbilder sehr einfach und bequem erstellen. Es spielt keine Rolle, ob Sie es noch nicht verwendet haben. Es ist gut, dies zu wissen. Obwohl MATLAB einfach zu verwenden ist, handelt es sich schließlich um eine kostenpflichtige Software, und viele Leute bevorzugen die Python-Syntax gegenüber MATLAB.
Daher wurde MATLAB in Betracht gezogen. Später ahmte ein Meister das Zeichenwerkzeug in MATLAB nach und entwickelte ein ähnliches Zeichenwerkzeug in Python. Dies ist die Matplotlib, über die wir im heutigen Artikel sprechen werden. Sie ist auch das am weitesten verbreitete Plot-Toolkit in den Bereichen Python, Datenanalyse und maschinelles Lernen. Vor einiger Zeit war die US-Regierung an etwas beteiligt, das dazu führte, dass MATLAB ein Verbot der Verwendung von MATLAB an mehreren Universitäten in China verkündete. Einige Leute schlugen vor, dass wir stattdessen einige Open-Source-Tools in Python verwenden könnten Andere leistungsstarke Tools in MATLAB-Funktion, Python kann es möglicherweise nicht unbedingt ersetzen, aber zumindest im Bereich der Grafik ist es kein Problem.
Wir verwenden die Pyplot-Bibliothek unter dem Matplotlib-Paket. Wir können auch am Namen erkennen, dass es sich um eine Python-Bibliothek handelt. Wenn Sie ein vollständiges Python-Paketverwaltungstool wie Anaconda installiert haben, sollte dieses Paket bereits standardmäßig installiert sein. Wenn nicht, können Sie es mit pip installieren. Der Befehl ist ebenfalls sehr einfach.
pip install matplotlib复制代码
Nach der Installation des Pakets benennen wir es normalerweise in plt um. Wenn Sie also Quellcode und den Code anderer Master lesen, wird beim Zeichnen häufig plt.xxx angezeigt. So ist es entstanden.
import matplotlib.pyplot as plt复制代码
Es gibt mehrere häufig verwendete Zeichenwerkzeuge in Plot. Das erste besteht darin, Liniendiagramme oder Kurvendiagramme zu erstellen, was als Plot bezeichnet wird. Der zweite Typ ist ein Balkendiagramm mit der Bezeichnung hist, der dritte Typ ist ein Streudiagramm und heißt Streudiagramm, und der vierte Typ ist ein Kreisdiagramm. Darüber hinaus können Sie auch einige dreidimensionale Bilder erstellen, diese werden jedoch im täglichen Leben selten verwendet. Die meisten davon werden verwendet, um Ihre Fähigkeiten zu demonstrieren.
Plot wird tatsächlich zum Erstellen von Kurvendiagrammen verwendet. Die verwendete Methode ist die PunktzeichnungDarstellung, bei der unsere Datenpunkte in Reihe verbunden werden, um eine glatte Kurve zu bilden. Natürlich sind auch Polylinien und Geraden möglich. Der endgültige Effekt des Diagramms wird vollständig durch unsere Daten bestimmt.
Es ist sehr einfach zu verwenden. Im einfachsten Fall müssen wir nur zwei Listen übergeben, die die Werte der x-Achse bzw. der y-Achse darstellen. Beispielsweise möchten wir ein Logistikfunktionsbild erstellen. Wir können Folgendes tun:
x = np.linspace(-10, 10, 100)y = 1 / (1 + np.exp(-x))plt.plot(x, y)plt.show()复制代码
Im obigen Code verwenden wir zunächst die Linspace-Funktion in Numpy, um ein Numpy-Array zwischen -10 und 10 zu generieren. Es gibt 100 Punkte in diesem Array, gleichmäßig verteilt zwischen -10 und 10. Wir berechnen den Wert der entsprechenden Logistikfunktion dafür, der ist. Ich denke, dass jeder mit dieser Funktion vertraut sein sollte. x ist eine Liste mit einhundert Punkten, und das entsprechende y ist auch eine Liste mit einhundert Punkten. Das heißt, ein x, das einem y entspricht, bildet ein Punktpaar, das eine Koordinate im Bild darstellt.
Wir müssen keine Konvertierung durchführen, wir müssen nur diese beiden Arrays an plt übergeben, und die Koordinatenzuordnung wird automatisch für uns abgeschlossen. Der Endeffekt ist wie folgt.
Wir können sehen, dass der Zeicheneffekt recht gut ist. Zusätzlich zum Zeichnen des Bildes werden auch Punkte auf der Koordinatenachse gezeichnet, damit wir die Daten leichter anzeigen können.
hist kann zum Zeichnen eines Histogramms verwendet werden, was bei uns auch ein sehr häufiges Bild ist. Im Finanzbereich verwenden wir häufig Histogramme, um den Trend von Daten widerzuspiegeln. Bei der Datenanalyse und beim maschinellen Lernen verwenden wir häufig Histogramme, um die Verteilung eines bestimmten Merkmals oder Werts widerzuspiegeln.
在直方图当中我们只需要传入一个数组,就是我们要求分布的数组,另外我们需要再输入一个参数bins,表示我们希望将数据分桶的数量。然后它会绘制出每个桶中数据数量的直方图,这样我们就可以很直观地看出分布来了。
x = np.random.normal(size=200)plt.hist(x,bins=30)plt.show()复制代码
这里我们调用numpy当中以正态分布概率随机的函数,得到的结果应该是正态分布的。
我们查看图像,这个结果和我们的预期基本吻合。
第三种图像叫做散点图,它反应的是每个点的分布情况。比如我们之前在介绍KNN和Kmeans模型的时候曾经都作过散点图,一个点代表一个样本,通过散点图我们观察的也是样本和数据分布的情况。但是和直方图相比它更加得直观,我们能直接看到分布,而不是一个分布的统计结果。
但是它也有缺点,缺点就是我们只能观察二维平面当中的点的分布,毕竟超过3维的维度就没办法绘制了。而且3维的数据分布也不是很好观察。
同样散点图的绘制也很简单,我们只需要调用scatter函数传入x和y的数组即可。
x = np.random.rand(100)y = np.random.rand(100)plt.scatter(x, y)复制代码
这里我们的x和y都是随机分布,所以得到的结果是散乱没有规律的点。
最后我们来看下饼状图,饼状图也很常用,虽然也是反映的数据分布,但是它更多是体现某一个值占的比例。通过饼状图,我们可以很直观地了解到这点。
我们可以传入一个list进入pie函数,plot会根据list当中值在总体的占比绘制饼状图。我们来看个很简单的例子:
a = np.array([0.5, 0.3, 0.2, 0.1, 0.8])plt.pie(a)复制代码
得到的结果如下:
Verglichen mit den vorherigen Ergebnissen ist das Kreisdiagramm etwas unklar, denn obwohl es unterschiedliche Farben zur Unterscheidung verschiedener Bereiche verwendet, ist es für uns schwierig, intuitiv zu erkennen, was jeder Bereich darstellt. Dieses Problem kann gelöst werden, indem wir einige Parameter und Einstellungen übergeben, um mehr Informationen anzuzeigen und die Daten anschaulicher und klarer zu gestalten.
Wenn Sie mehr über das Erlernen des Programmierens erfahren möchten, achten Sie bitte auf die Spalte „PHP-Schulung“!
Das obige ist der detaillierte Inhalt vonVon nun an können Sie Diagramme mit matplotlib steuern, einem leistungsstarken Zeichentool in Python.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!