Python繪製圖表【matplotlib】

matplotlib

Matplotlib 是一個 Python 的 2D繪圖庫
它以各種硬拷貝格式和跨平臺的交互式環境生成出版質量級別的圖形

通過 Matplotlib,開發者可以僅需要幾行代碼,
便可以生成繪圖,直方圖,功率譜,條形圖,錯誤圖,散點圖等

官方文檔

[官方中文文檔]((https://www.matplotlib.org.cn/)


安裝

pip install matplotlib

繪製常見圖表

折線圖

import random

import matplotlib.pyplot as plt
from matplotlib import font_manager

# 創建測試數據
x_time = list(range(20))
y_temp =[random.randint(20,30) for i in x_time]

# 設置圖片大小
#plt.figure(figsize=(5, 5))

# 根據生成數據製圖
plt.plot(x_time,y_temp)

# 利用字體ttc文件生成字體對象,默認不支持中文,顯示中文需要指定字體
myfont = font_manager.FontProperties(fname='/usr/share/fonts/cjkuni-uming/uming.ttc')

# 指定標題
plt.title('20日溫度變化圖',fontproperties=myfont)

# 指定x軸和y軸標籤
plt.xlabel('時間',fontproperties=myfont)
plt.ylabel('溫度',fontproperties=myfont)

# 設置x和y座標軸刻度和刻度標籤,並指定字體和旋轉角度
plt.xticks(ticks=x_time,labels=['%s日'%i for i in x_time],fontproperties=myfont,rotation=30)
plt.yticks(range(min(y_temp),max(y_temp)+1))

# 保存至文件
plt.savefig('doc/折線圖.jpg')

Python繪製圖表【matplotlib】


散點圖

import random

import matplotlib.pyplot as plt
from matplotlib import font_manager

# 利用字體ttc文件生成字體對象
myfont = font_manager.FontProperties(fname='/usr/share/fonts/cjkuni-uming/uming.ttc')

# 創建測試數據
x_time = list(range(20))
y_temp =[random.randint(20,30) for i in x_time]
y_temp2 =[random.randint(20,30) for i in x_time]
# 設置圖片大小
plt.figure(figsize=(5, 5))

# 設置標題
plt.title('溫度變化散點圖',fontproperties=myfont)

# 設置x軸y軸標籤
plt.xlabel("時間", fontproperties=myfont)
plt.ylabel("溫度", fontproperties=myfont)

# 設置座標軸刻度和標籤
plt.xticks(ticks=x_time,labels=['%s日'%i for i in x_time],fontproperties=myfont,rotation=30)
plt.yticks(range(min(y_temp),max(y_temp)+1))

# 根據數據生成散點圖
plt.scatter(x_time,y_temp,label='測試散點圖1',color='g')
plt.scatter(x_time,y_temp2,label='測試散點圖2',color='r')

# 設置圖例,指定字體和位置
plt.legend(prop=myfont, loc="upper left")

# 設置網格,指定透明度
plt.grid(alpha=0.5)

# 保存至文件
plt.savefig('doc/散點圖.jpg')

# 執行時顯示
# plt.show()

Python繪製圖表【matplotlib】


條形圖

import random

import matplotlib.pyplot as plt
from matplotlib import font_manager

# 利用字體ttc文件生成字體對象
myfont = font_manager.FontProperties(fname='/usr/share/fonts/cjkuni-uming/uming.ttc')

# 創建測試數據
x_time = list(range(20))
y_temp =[random.randint(20,30) for i in x_time]
y_temp2 =[random.randint(20,30) for i in x_time]

# 設置圖片大小
plt.figure(figsize=(5, 5))

# 設置標題
plt.title('溫度變化條形圖',fontproperties=myfont)

# 設置x軸y軸標籤
plt.xlabel("時間", fontproperties=myfont)
plt.ylabel("溫度", fontproperties=myfont)

# 設置座標軸刻度和標籤
plt.xticks(ticks=x_time,labels=['%s日'%i for i in x_time],fontproperties=myfont,rotation=30)
plt.yticks(range(min(y_temp),max(y_temp)+1))

# 根據數據生成條形圖,設置圖例標籤,顏色,寬度(默認爲1個單位寬度)
plt.bar([i+0.25 for i in x_time],y_temp,label='測試散點圖1',color='b',width=0.5)
plt.bar([i-0.25 for i in x_time],y_temp2,label='測試散點圖2',color='r',width=0.5)

# 設置圖例,指定字體和位置
plt.legend(prop=myfont, loc="upper left")

# 設置網格,指定透明度
plt.grid(alpha=0.5)

# 保存至文件
plt.savefig('doc/條形圖.jpg')

Python繪製圖表【matplotlib】

直方圖

import random

import matplotlib.pyplot as plt
from matplotlib import font_manager

# 利用字體ttc文件生成字體對象
myfont = font_manager.FontProperties(fname='/usr/share/fonts/cjkuni-uming/uming.ttc')

# 創建測試數據
x_time = list(range(20))
y_temp =[random.randint(20,30) for i in x_time]

# 組距
distance = 1

# 組數
num = (max(y_temp)-min(y_temp))//distance

# 設置標題
plt.title('溫度變化直方圖',fontproperties=myfont)

# 設置x軸y軸標籤
plt.xlabel("溫度", fontproperties=myfont)
plt.ylabel("頻數", fontproperties=myfont)

# 設置座標軸刻度和標籤
plt.xticks(list(range(min(y_temp),max(y_temp)+1)))

# 生成直方圖
plt.hist(y_temp,num)

# 設置網格,指定線條風格和透明度
plt.grid(linestyle='-.',alpha=0.5)

# 保存至文件
plt.savefig('doc/直方圖.jpg')

# 執行時顯示
# plt.show()

Python繪製圖表【matplotlib】


餅狀圖

import random

import matplotlib.pyplot as plt
from matplotlib import font_manager

# 利用字體ttc文件生成字體對象
myfont = font_manager.FontProperties(fname='/usr/share/fonts/cjkuni-uming/uming.ttc')

# 創建測試數據
x_time = list(range(20))
y_temp =[random.randint(20,30) for i in x_time]

# 標題
plt.title('溫度變化餅狀圖',fontproperties=myfont)

# 生成餅狀圖,數據,數據標籤
plt.pie(y_temp,labels=['%s-%s'%(i[0],i[1]) for i in zip(x_time,y_temp)])

# 保存至文件
plt.savefig('doc/餅狀圖.jpg')

Python繪製圖表【matplotlib】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章