1. 程式人生 > >matplotlib常用統計圖形的使用

matplotlib常用統計圖形的使用

一、matplotlib的安裝

使用pip或conda直接安裝即可(需要安裝pip或conda)。

pip install matplotlib
conda install matplotlib

二、matplotlib基本使用流程

三、常用圖形程式碼示例

1. 常用程式碼

# 折線圖
# 特點:能夠顯示資料的變化趨勢,反映事物的變化情況(變化)
matplotlib.plot(x,y) 

# 柱狀圖
# 特點:繪製離散的資料,能夠一眼看出各個資料的大小,比較資料之間的差別(統計)
matplotlib.bar(x,y) 

# 散點圖
# 特點:判斷變數之間是否存在數量關聯趨勢,展示離群點(分佈規律)
matplotlib.scatter(x,y) # 直方圖 bins為組距,hist會根據組距自動分組 # 特點:繪製連續性的資料,展示一組或多組資料的分佈狀況(分組統計) matplotlib.hist(data,bins)

2. 折線圖示例

提出問題:假設大家30歲時統計出你和你同桌各自從11歲到30歲每年交女(男)朋友的數量如列表a和b,請在一個圖中展示資料折線圖,以便比較兩人20年之間每年交女(男)朋友的數量走勢
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
要求:x軸表示歲數,y軸表示個數

from matplotlib import pyplot as plt
from matplotlib import font_manager

# 設定支援中文的字型(matplotlib預設字型不支援中文)
# fname須這是絕對路徑字型,linux下可執行(fc-list :lang_zh)檢視支援中文的字型,windows下預設路徑查詢即可
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc")

# 準備資料  y_1為自己的女朋友的數量;y_2為你同桌女朋友的數量
y_1 = [
1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1] y_2 = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1] x = range(11,31) # 設定圖形大小 plt.figure(figsize=(20,10),dpi=80) # 繪製折線圖 兩人的須繪製兩次 label設定圖例,color設定顏色,linestyle設定線條格式 plt.plot(x,y_1,label="自己",color="orange",linestyle=":") plt.plot(x,y_2,label="同桌",color="#4169E1",linestyle="-.") # 設定x軸刻度 rotation:旋轉角度 _xtick_labels = ["{}歲".format(i) for i in x] plt.xticks(x,_xtick_labels,rotation=30,fontproperties=my_font) # 繪製網格 (alpha設定透明度,linestyle設定線條格式) plt.grid(alpha=0.6,linestyle=":") # 新增圖例 (預設顯示在左上,loc引數可設定顯示位置) # 只有legend這裡字型設定用prop引數,其餘均用fontproperties設定 plt.legend(prop=my_font,loc="upper left") # 新增標題和x/y軸描述 plt.xlabel("年齡",fontproperties=my_font) plt.ylabel("交往人數",fontproperties=my_font) plt.title("自己和同桌11-30歲每年交女朋友的數量分佈折線圖",fontproperties=my_font) # 儲存圖片 plt.savefig("./自己和同桌女朋友數量折線圖.png") # 展示 plt.show()

結果如下所示:
在這裡插入圖片描述

四、其它圖形模版及程式碼示例

matplotlib 官方連結:https://matplotlib.org/gallery/index.html
其餘畫圖工具:
seaborn 官方連結:http://seaborn.pydata.org/
plotly 官方連結:https://plot.ly/python/

如果要展示更加友好,炫酷,互動式的圖形,可使用plotly 或 js框架echarts