matplotlib常用統計圖形的使用
阿新 • • 發佈:2018-11-19
一、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