一個matplotlib 畫K線圖 +一個高效的畫圖工具Serborn
阿新 • • 發佈:2019-02-03
http://www.financecomputing.net/wordpress/?p=1047
Seaborn
Matplotlib是Python主要的繪相簿。但是,我不建議你直接使用它,原因與開始不推薦你使用NumPy是一樣的。雖然Matplotlib很強大,它本身就很複雜,你的圖經過大量的調整才能變精緻。因此,作為替代,我推薦你一開始使用Seaborn。Seaborn本質上使用Matplotlib作為核心庫(就像Pandas對NumPy一樣)。我將簡短地描述下seaborn的優點。具體來說,它可以:
- 預設情況下就能建立賞心悅目的圖表。(只有一點,預設不是jet colormap)
- 建立具有統計意義的圖
- 能理解pandas的DataFrame型別,所以它們一起可以很好地工作。
雖然anaconda預裝了pandas,卻沒安裝seaborn。可以通過conda install seaborn輕鬆地
安裝。
具有統計意義的圖
In [5]: Python1 | %matplotlib inline# IPython magic to create plots within cells |
1 2 3 4 5 6 |
importseaborn
assns
#
Load one of the data sets that come with seaborn |
與Pandas的DataFrame很好地工作
資料有自己的結構。通常我們感興趣的包含不同的組或類(這種情況下使用pandas中groupby的功能會讓人感到很神奇)。比如tips(小費)的資料集是這樣的:
In [9]: Python1 | tips.head() |
total_bill | tip | sex | smoker | day | time | size | |
---|---|---|---|---|---|---|---|
0 | 16.99 | 1.01 | Female | No | Sun | Dinner | 2 |
1 | 10.34 | 1.66 | Male | No | Sun | Dinner | 3 |
2 | 21.01 | 3.50 | Male | No | Sun | Dinner | 3 |
3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
4 | 24.59 | 3.61 | Female | No | Sun | Dinner | 4 |
我們可能想知道吸菸者給的小費是否與不吸菸的人不同。沒有seaborn的話,這需要使用pandas的groupby功能,並通過複雜的程式碼繪製線性迴歸直線。使用seaborn的話,我們可以給col引數提供列名,按我們的需要劃分資料:
In [11]:Python1 | sns.lmplot("total_bill","tip",tips,col="smoker"); |
很整潔吧?
隨著你研究得越深,你可能想更細粒度地控制這些圖表的細節。因為seaborn只是呼叫了matplotlib,那時你可能會想學習這個庫。然而,對絕大部分工作來說我還是喜歡使用seaborn