天天看點

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

資料可視化、資料分析是Python的主要應用場景之一,Python為資料展示提供了大量優秀的功能包,無論你想畫什麼圖,在python中都能找到相對應的庫,比較常用的有matplotlib、pygal、Pychart等。今天就給大家帶來一期實用的小技能,讓你成為畫圖小能手。

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

Matplotlib

Matplotlib是Python可視化程式庫的泰鬥,功能極其強大,可以繪制各種形式的2D、3D圖形包括普通的線圖、直方圖、餅圖、散點圖等,還可以任意改變圖像的大小、形狀、顔色等。Matplotlib受MATLAB的啟發建構,但是MATLAB語言是面向過程的,而matplotlib是通過函數式調用來建構對象,是以本質上matplotlib是面向對象的。Matplotlib的官方文檔裡面有很多圖形的開源代碼,可以從裡面找到很多你想要的圖形,官網位址:

Thumbnail gallery - Matplotlib 2.0.2 documentation​matplotlib.org

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

這裡粗略地介紹一下matplotlib面向對象程式設計中涉及到的一些基本的概念:

1. Figure對象:整個圖像就是一個Figure對象,一個Figure對象至少包含一個子圖。

2. Axes對象:用于代表x軸和y軸所對應的一個子圖對象。

3. Axis對象:用于資料軸刻度和數值的顯示。

4. Artist對象:所有的對象包括Figure對象、Axes對象和Axis對象都屬于Artist對象。

在python中調用matplotlib函數包有兩種辦法,一種是在pylab模式中包含一個星号,另一種是在matplotlib.pyplot模式下使用plt(整潔的方法)。

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

(1) 繪制2D圖像

Matplotlib 繪制2D圖像,隻需簡單的一行代碼就可以畫出優美的圖形。

pyplot的一些基礎圖示函數如下所示:

繪制坐标圖:plt.plot(x,y,fmt,…)

箱形圖:plt.boxplot(data,notch,position)

條形圖:plt.bar(left,height,width,bottom)

極坐标圖:plt.polar(theta,r)

餅圖:plt.pie(data,explode)

功率譜密度圖:plt.psd(x,NFFT=256,pad_to,Fs)

譜圖:plt.specgram(x,NFFT=256,pad_to,F)

X-Y的相關性函數:plt.cohere(x,y,NFFT=256,Fs)

散點圖,其中x,y長度相同:plt.scatter(x,y)

步階圖:plt.step(x,y,where)

直方圖:plt.hist(x,bins,normed)

等值圖:plt.contour(X,Y,Z,N)

通過這些基本函數,可以畫出很多功能豐富的資料圖,比如餅圖、柱狀圖、直方圖等,這些圖像對于資料的分析很有幫助。

餅圖

:餅圖的繪制是通過pie()函數繪制的,建立餅圖的兩個重要的參數就是x和lables,x指的是餅圖各部分的數值,lables指的是各部分對應的标簽。

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
直方圖

:直方圖通過hist()函數實作,每次調用hist()都會生成一組直方圖,直方圖的個數、類型、顔色等都可以随意設定。

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
條形圖

:條形圖通過bar()函數繪制,每次調用bar()函數時都會調用一組條形圖,要想生成多組條形圖,隻需要多次調用bar()函數即可。

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
極坐标圖

:Matplotlib 的 pyplot 子庫提供了繪制極坐标圖的方法,在調用 subplot() 建立子圖時通過設定 projection=‘polar’ 便可建立一個極坐标子圖,然後調用 plot() 在極坐标子圖中繪圖。

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

(2) 繪制3D圖像

進行資料分析時,很多時候僅僅2D圖是不能滿足要求的,3D圖在資料分析、資料模組化、圖形和圖像處理都有着廣泛的應用。Python中的3D繪制,仍然采用matplotlib子產品,建立3D圖有兩種方式可以實作,一種是安裝mpl_toolkits工具包,安裝好這個子產品之後,調用裡面的mplot3d類就可以進行3D圖形的繪制。另外一種是通過關鍵字projection='3d'來實作,這兩種方式都可以生成具有三維格式的對象。

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

顯示3D坐标軸關鍵的三步:

①用pyplot的figure()函數建立一個figure對象

②以它為參數建立Axes3D對象,使之具有3D坐标軸

③pyplot的show()方法顯示所有figure對象

3D表面球狀

的繪制,僅僅簡單幾行代碼就可以搞定!

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
3D花朵的繪制
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
3D直方圖的繪制
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
3D散點圖
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

Turtle

除了用matplotlib庫來畫圖之外,還有一個很直覺畫圖函數庫:turtle。Turtle庫是python的标準庫之一,屬于入門級的圖形繪制函數庫。如果說用matplotlib來畫圖太過于正經,學術味兒太濃的話,那麼用turtle來畫圖就比較随意了。Turtle是python語言中一個簡單流行的繪圖函數庫,使用非常友善,直接導入import turtle即可。雖然turtle庫比較簡單,但是它卻能畫出很複雜的圖形,而且易于操作,其實可以把turtle看作一支畫筆,能夠畫什麼,取決于你是一個怎樣的畫家,取決于你怎麼下筆。Turtle庫繪制原理:想象一下一個海龜在窗體正中心,在畫布上遊走,走過的軌迹形成了繪制的圖形,海龜由程式控制,可以自由改變顔色、方向寬度等。

Turtle的空間坐标體系:

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

Turtle的移動主要靠goto函數實作:

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

Turtle庫的基礎指令介紹:

1、 畫布

畫布cancas是繪圖區域,可以設定它的大小和初始位置

turtle.screensize(x,y,'color') 大小的設定

turtle.setup(width,height) 初始位置

2.

畫筆

(1)畫筆運動的指令

turtle.forward(a) 向目前畫筆方向移動a像素長度

turtle.backward(a) 向目前畫筆相反方向移動a像素長度

turtle.right(a) 順時針移動

aturtle.left(a) 逆時針移動

aturtle.pendown() 移動時繪制圖形

turtle.goto(x,y) 将畫筆移動到坐标為x,y的位置

turtle.penup() 移動時不繪制圖形,提起筆

turtle.speed(a) 畫筆繪制的速度範圍

turtle.circle() 畫圖,半徑為正,表示圓心在畫筆的左邊畫圈

(2)畫筆控制指令

turtle.pensize(width) 繪制圖形的寬度

turtle.pencolor() 畫筆的顔色

turtle.fillcolor(a) 繪制圖形的填充顔色

turtle.color(a1,a2) 同時設定pencolor=a1,fillcolor=a2

turtle.filling() 傳回目前是否在填充狀态

turtle.begin_fill() 準備開始填充圖形

turtle.end_fill() 填充完成

turtle.hideturtle() 隐藏箭頭顯示

turtle.showturtle() 顯示箭頭

(3)全局控制指令

turtle.clear() 清空turtle視窗,但是turtle的位置和狀态不會改變

turtle.reset() 清空視窗,重置turtle狀态為起始位置

turtle.undo() 撤銷上一個turtle動作

下面讓我們一起欣賞一下用turtle畫出的有趣的圖。

哆啦A夢的繪制
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
螺旋圈的繪制
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
時鐘的繪制

(這是一個可以動态顯示的時鐘哦)

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
玫瑰的繪制:下面幾種顔色的玫瑰你喜歡哪一個呢?
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
五星紅旗的繪制:對祖國滿滿的祝福
plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)
最後的最後,一顆小心心送個智慧與美貌并存的你

想了解更多關于我們金翅創客實驗室的内容,請關注微信公衆号:金翅創客。

plot畫圖 python 雙線_如何用python畫出優雅美妙的圖形(附代碼)

原創聲明:本文内容均為本人原創作品。請任何和個人、組織,在經過本人授權後,方可轉載。

繼續閱讀