1. 程式人生 > 實用技巧 >matplotlib--折線圖

matplotlib--折線圖

一、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