Python繪制圖表【matplotlib】
阿新 • • 發佈:2019-02-23
需要 from 安裝 支持中文 lock save blog 中文 labels 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‘)
散點圖
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()
條形圖
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‘)
直方圖
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()
餅狀圖
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】