matplotlib畫圖(一)——線條圖
最近一直接觸大資料相關專案,也瞭解了一些基本的資料分析方法。於是乎,想要對資料做一些處理,形成圖示,讓資料會說話。
R語言與python語言在作圖上面都有一定優勢,本人不會R語言,只能學習python相關的作相簿了。根據網上的資料與反饋,matplotlib會是一個不錯的選擇。
從最基礎的作圖開始——線條圖。
matplotlib庫提供介面:
matplotlib.pyplot.plot(*args, **kwargs)
呼叫方法
plot([x], y, [fmt], data=None, **kwargs) plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
其中中括號的引數是可以省略的。來一個最簡單的呼叫方法吧:
>>> from matplotlib.pyplot import plot >>> x1 = list(range(5)) >>> y1 = list(map(lambda x:x**2, x1)) >>> x1 [0, 1, 2, 3, 4] >>> y1 [0, 1, 4, 9, 16] >>> plot(x1,y1) [<matplotlib.lines.Line2D object at 0x02A063F0>]
上述定義了一個指定x,y座標的線條圖。需注意的是,若指定了x,y的資料,那麼x與y的資料個數要一一對應,否則會報錯。根據文件提示,x軸資料其實是可以省略的,省略x軸資料後,會以預設座標調整:
>>> plot(y1)
[<matplotlib.lines.Line2D object at 0x075D8450>]
畫兩個線條圖
>>> x2 = list(range(5,10)) >>> y2 = list(map(lambda x: x**2, x2)) >>> x2 [5, 6, 7, 8, 9] >>> y2 [25, 36, 49, 64, 81] >>> plot(y1,y2) [<matplotlib.lines.Line2D object at 0x079092D0>]
上述未指定座標,下面來指定下座標看看怎麼樣?
>>> plot(x1,y1,x2,y2)
[<matplotlib.lines.Line2D object at 0x089B30B0>, <matplotlib.lines.Line2D object at 0x089B3250>]
藍色線條圖為x1,y1的資料,橙色線條圖為x2,y2的資料。
有些時候,我們會對線條圖有一些更高的要求,這時候可以考慮下引數fmt
。
fmt
其實是三個配置的引數:
fmt = '[color][marker][line]'
其中color
有如下種類:
marker
有如下種類:
line
有如下種類:
舉個例子吧,我需要上述藍色線條圖改成紅色實線圖,座標用“點”標記;橙色線條圖改成綠色虛線圖,座標用“*”號標記;根據文件可得:
>>> plot(x1,y1,"r.-",x2,y2,"g*--")
[<matplotlib.lines.Line2D object at 0x01556050>, <matplotlib.lines.Line2D object at 0x01556110>]
fmt
引數雖然是三個配置項,實際使用過程中,可配置任意一項或者多項也都是可以的,並不要求三個配置項都要完整。
相信fmt
已經能滿足大部分人的需求了,但或許高階人士不止於此,此介面還有很多屬性引數:
上圖是最全面的線條圖引數相關的設定,若使用上述關鍵字設定時,與fmt
引數衝突時,以關鍵字設定為主:
>>> plot(x1,y1,"r.-",x2,y2,"g*--", marker="D")
[<matplotlib.lines.Line2D object at 0x0792F030>, <matplotlib.lines.Line2D object at 0x0792F890>]
本博文參考matlibplot 官方文件:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.pyplot.plot