matplotlib--折線圖
阿新 • • 發佈:2020-12-02
一、matplotlib
是最流行的python底層繪相簿,主要做資料視覺化圖表,名字取材於MATLAB,模仿MATLAB建立。
用途:
- 能將資料進行視覺化,更直觀的呈現
- 是資料更加客觀,更具說服力
1、建立簡單折線圖
示例1:
假設一天中每隔兩個小時(range(2,26,2))的氣溫(℃)分別是[15,13,14.5,17,20,25,26,26,27,22,18,15],使用python畫圖他的折線圖
# coding=utf-8 from matplotlib import pyplot as plt # x 軸 x = range(2,26,2) # y 軸 y = [15,13,14.5,17,20,25,26,26,27,22,18,15] # 畫出折線圖,plot() 方法根據x,y 來畫出折線圖 plt.plot(x,y) # 顯示圖片 plt.show()
執行程式展示的折線圖如上所示,但是目前存在以下幾個問題:
1、設定圖片大小(高清、無碼、大圖)
2、儲存到本地
3、描述資訊,x軸y軸代表什麼,圖表示什麼
4、調整 x 或 y 軸之間的刻度間距
5、線條的樣式(顏色、粗細、透明度等)
6、標記出特殊點
7、新增水印、標識
2、調整圖片大小與 X、Y 軸刻度
plt.figure() 方法:設定圖片的logo、圖片大小、清晰度、顏色
plt.plot(引數1,引數2) 方法:根據傳入的引數畫圖
plt.xticks(引數1) 根據傳入的引數設定 X 軸的刻度 引數可以是 range() 函式或 列表
plt.yticks(引數1) 設定y軸刻度
plt.savefig(“儲存路徑”) 方法 :將圖片儲存到傳入的路徑
# coding=utf-8 from matplotlib import pyplot as plt # x 軸 x = range(2,26,2) # y 軸 y = [15,13,14.5,17,20,25,26,26,27,22,18,15] # 設定圖片大小 fig = plt.figure(num="BONC",figsize=(12,8), dpi=80) # figure 圖形圖示的意思,在這裡指的是我們畫的圖 # 通過例項化一個 figure 並且傳遞引數,能夠在後臺自動使用 figure 示例 # 在影象模糊的時候可以傳入 dpi 引數。讓圖片更加清晰 # 畫出折線圖,plot() 方法根據x,y 來畫出折線圖 plt.plot(x,y) # 設定 X 軸的刻度 plt.xticks(x) # x 軸的刻度為2 # plt.xticks(range(2,25)) # x 軸的刻度為1 #_xticks_label = [ i/2 for i in range(4,49)] # plt.xticks(_xticks_label) # 自己設定 X 軸的刻度,刻度為0.5
# 設定 Y 軸的刻度
plt.yticks(range(min(y),max(y)+1,2))
# 儲存 #plt.savefig("E:\PycharmProjects\zheXian.png") # 顯示圖片 plt.show()
示例2:
如果列表a表示10點到12點的每一分鐘的氣溫,如何繪製折線圖觀察每分鐘氣溫的變化情況?
# coding=utf-8 import random from matplotlib import pyplot as plt x = range(0,120) y = [random.randint(20,35) for i in range(120)] fig = plt.figure(num="天氣氣溫變化折線圖",figsize=(12,8),dpi=60) plt.plot(x,y) # 調整 X 軸的刻度 _xticks_label = ["10點:{}分".format(i) for i in range(60) ] _xticks_label += ["11點:{}分".format(i) for i in range(60) ] # plt.xticks() 函式中,只新增一個引數時,則 X 軸直接展示出來; # 如果 函式中傳入了兩個引數,則兩個引數的長度與刻度必須相同,且一一對應 # rotation 旋轉引數,旋轉角度 plt.xticks(list(x)[::10],_xticks_label[::10],rotation=45) plt.show()
顯示:
圖中不能顯示出中文名稱。因為 matplotlib 中不能顯示中文
3、設定顯示中文
設定中文有兩種方式:
方法一: import matplotlib #windows 和 Liunx 設定字型 #需要匯入 import matplotlib font = {'family' : 'MicroSoft YaHei', 'weight' : 'bold', 'size' : 'larger'} matplotlib.rc("font",family='MicroSoft YaHei',weight='bold') 方法二: from matplotlib import font_manager
# windows 和 Liunx 設定字型 方法二,並且需要在設定 X 或 Y 軸時設定時(plt.xticks(),plt.yticks())設定fontproperties屬性 #需要匯入 from matplotlib import font_manager my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\STXINWEI.TTF") # 新增字型的路徑
plt.xticks(list(x)[::10],_xticks_label[::10],rotation=45,fontproperties=my_font) #設定fontproperties屬性
4、給圖示新增描述資訊
my_font1 = font_manager.FontProperties(fname="C:\Windows\Fonts\STXINWEI.TTF",size=30) # 新增字型的路徑 # 給圖示新增描述資訊 plt.xlabel("時間",fontproperties=my_font1) # 設定 X 軸的label plt.ylabel("溫度",fontproperties=my_font1) # 設定 Y 軸的label plt.title("溫度變化情況",fontproperties=my_font1) # 設定 title