pandas.Series.plot
Series.plot(kind='line', ax=None, figsize=None, use_index=True, title=None, grid=None, legend=False, style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None, rot=None, fontsize=None, colormap=None, table=False, yerr=None, xerr=None, label=None, secondary_y=False, **kwds)¶
功能:畫柱狀圖、直方圖、密度圖、線形圖
1.柱狀圖(kind='bar')
優點:人眼對高度較敏感,直觀各組數據差異性,強調個體與個體之間的比較
缺點:不適合大量的數據集數據(項數較多)
適用場景:一個維度數據比較、數據單純性展示、排序數據展示
適用數據:數據集不大, 二維數據
from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 雅黑字體 mpl.rcParams['axes.unicode_minus'] = False import matplotlib.pyplot as plt fig = plt.figure() from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 雅黑字體 mpl.rcParams['axes.unicode_minus'] = False fig.set(alpha=0.5) # 設定圖表顏色alpha參數 data_train.Survived.value_counts().plot(kind='bar')#柱狀圖 plots a bar graph of those who surived vs those who did not. plt.title(u"獲救情況 (1為獲救)") # puts a title on our graph plt.ylabel(u"人數")
2.柱狀圖(kind='bar')
sns.countplot(x='SibSp',hue='Survived',data=df)
多分類累積柱狀圖
3.直方圖(kind='hist')
直方圖(histogram)是一種可以對值頻率進行離散化顯示的柱狀圖。數據點被拆分到離散的、間隔均勻的面元中,繪制的是各面元中數據點的數量。
4.密度圖(kind='kde')
data_train.Age[data_train.Pclass == 1].plot(kind = 'kde') data_train.Age[data_train.Pclass == 2].plot(kind = 'kde') data_train.Age[data_train.Pclass == 3].plot(kind = 'kde') plt.xlabel('年齡') plt.ylabel('密度') plt.title('各等級的乘客年齡分布') plt.legend(('頭等艙','二等艙','三等艙'),loc = 'best')
4.線性圖(kind='line')
折線圖分為 直線折線圖和曲線折線圖,直線折線圖一般適用於離散變量,曲線折線圖一般適用於連續變量。
優點:直觀反映數據變化趨勢
缺點:數據集太小時顯示不直觀
適用場景:需要反映變化趨勢,關聯性。
適用數據:時間序列類數據、關聯類數據(如電流跟隨電壓變化而變化)
pandas的大部分繪圖方法都有一個可選的ax參數,它可以是一個matplotlib的subplot對象。這是你能夠在網絡布局中更為靈活地處理subplot的位置。DataFrame的plot方法會在一個subplot中為各列繪制一條線,並自動創建圖例
df = pd.DataFrame(np.random.randn(10, 4).cumsum(0), columns=list('ABCD'), index=np.arange(0, 100, 10)) df.plot() plt.show()
舉例:畫驗證集的學習曲線
5.餅圖(kind='pie')
優點: 直觀顯示各項占總體的占比,分布情況,強調整個與個體間的比較。
缺點:數據不精細,不適合分類較多的情況
適用場景:一個維度各項指標(一般不超過5個項目)占總體的占比情況,分布情況。(例如:不同狀態下的車輛分布,公司內各個團隊營收收入)
適用數據:具有整體意義的各項相同數據