series 有很多‘嵌入式功能’,除了之前提到的衆多series的方法,這篇文章主要講series聯合 matplotlib 進行數據的展示。實用性很強呦,不收藏?
不過,這篇文章的內容確實很少,下面是思維導圖:
對於series,
.plot()
方法默認繪製線圖,不過可以通過調整kind=bar
這個參數設置條形圖
1. series製作折線圖
這裏還是用上一篇文章中用到的兩個seires舉例:
我是在IDLE的交互式環境中操作的,將songs_66
和songs_69
兩個series做成折線圖放在同一張圖表中,其中使用plt.legend()
爲圖標插入圖例註釋
2. series製作柱狀圖
注意⚠️:
.plot()
方法繪製條形圖時不是默認將兩個series分開展示,而是將2個series對應的bar簡單粗暴堆積在一起。
這裏,我使用腳本的形式畫條形圖。
import pandas as pd
import matplotlib.pyplot as plt
songs_66=pd.Series([5.0,7.0,18.0,22.0,'NaN'],index=['Ringo','George','John','Paul','Eric'],name='counts 66')
songs_69=pd.Series([18,22,7,5],index=['John','Paul','George','Ringo'],name='Counts 69')
songs_66['Eric']=float('nan')
songs_69.plot(kind='bar')
songs_66.plot(kind='bar',color='k',alpha=.5)#這裏color設置顏色,alpha設置透明度
plt.legend()
3. series製作頻率分佈直方圖
額外補充一個matplotlib內容:
.add_subplot()
方法可以在全局繪圖區域中創建一個分區體系,並定位到一個子繪圖區域
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
data=pd.Series(np.random.randn(500),name='500 random')
fig = plt.figure()
ax = fig.add_subplot(111) #繪圖區域分割爲1橫1縱,現在繪圖區域在第1塊
data.hist()
這個series的.hist()
方法非常類似於matplotlib:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
data=pd.Series(np.random.randn(500),name='500 random')
fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(data)
4. seires 製作核密度估計圖
首先了解一下什麼是kdeplot(kernel density estimation)核密度估計圖
核密度估計(kernel density estimation)是在概率論中用來估計未知的密度函數,屬於非參數檢驗方法之一。通過核密度估計圖可以比較直觀的看出數據樣本本身的分佈特徵。
它和頻率分佈直方圖的性質差不多,只不過這裏用曲線代替了histogram裏面的柱狀圖
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
data=pd.Series(np.random.randn(500),name='500 random')
fig = plt.figure()
data.plot(kind='kde')
5. 額外補充
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(211)#繪製2橫1豎的繪圖區域,現在繪圖區域在第1塊
data=pd.Series(np.random.randn(500),name='500 random')
data.plot(kind='kde',color='b',alpha=.6,ax=ax)#繪製藍色的kde
#normed=True is passed through to matplotlib
data.hist(color='g',alpha=.6,ax=ax,normed=True)#繪製綠色的histogram
ax.set_title("KDE,Histogram & CDF")#設置標題
ax = fig.add_subplot(212)#繪製2橫1豎的繪圖區域,現在繪圖區域在第2塊
data.hist(ax=ax,density=True, cumulative=True)#累積密度圖(不知道這麼稱呼是否恰當?)