使用matplotlib畫圖


一、介紹

官方文檔:https://www.matplotlib.org.cn/home.html

安裝:pip install matplotlib

 

Matplotlib是一個Python 2D繪圖庫,可以生成各種硬拷貝格式和跨平台交互式環境的出版物質量數據。Matplotlib可用於Python腳本,Python和IPython shell,Jupyter筆記本,Web應用程序服務器和四個圖形用戶界面工具包。

 

二、使用例子

1、波形圖

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2*np.pi,100) #100個點組成的2*np.pi線
y1=np.sin(x) #y1線
y2=np.cos(x) #y2線
plt.title("sin&cos title") #標題
plt.xlabel("x") #x軸的名稱
plt.ylabel("y") #y軸的名稱
plt.plot(x,y1)  #畫y1線
plt.plot(x,y2)  #畫y2線
plt.show() #顯示

圖片

 

2、柱狀圖

import matplotlib.pyplot as plt

name_list = ["A","B","C","D"] #x軸柱狀圖的名字
num_list=[10,8,5,6.1]         #y軸的值(如A=10,B=8,以此類推)
plt.bar(range(0,len(name_list)),num_list,color = "rgby",tick_label = name_list) #畫圖range(0,len(name_list))代表4個柱狀圖,color = "rgby"會循環這個規律的顏色
plt.show()     #顯示

 

 

 

3、堆疊柱狀圖

import matplotlib.pyplot as plt

name_list = ["A","B","C","D"]
num_list=[10,8,5,6.1]
num_list1=[5,7,3,8]
plt.bar(range(0,len(name_list)),num_list,color = "r",tick_label = name_list)
plt.bar(range(0,len(name_list)),num_list1,color = "g",tick_label = name_list)
plt.legend()
plt.show()

 

4、餅狀圖

import matplotlib.pyplot as plt

label = ["A","B","C","D"]
num = [12,30,50,8]  
ex=[0.1,0,0.1,0]  #比重,重點的會分出來,例如A,C
plt.axis(aspet=1) #1等分
plt.pie(x=num,autopct='%.2f%%',explode=ex,labels=label,colors="rgby",shadow=True,startangle=30) #startangle傾斜角度,shadow表示立體感(陰影)
plt.show()

 

 

5、實時畫圖

import matplotlib.pyplot as plt

ax=[] #定義空列表
ay=[] 
plt.ion()  #打開實時畫圖窗口
for i in range(100):  #畫的次數
    ax.append(i)    
    ay.append(i**2)
    plt.clf()        #清除上一次的圖
    plt.plot(ax,ay)  #畫圖
    plt.pause(0.1)   #時間間隔(類似sleep)
plt.ioff()           #關閉實時畫圖

 

6、三維畫點

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import random

x=np.random.normal(0,1,100)  #生成0-1之間的100個x坐標
y=np.random.normal(0,1,100)
z=np.random.normal(0,1,100)

fig = plt.figure() 
ax = Axes3D(fig)  #打開3d窗口
ax.scatter(x,y,z)   #畫3d圖
plt.show()

 

 

 

7、erwe散點圖

import matplotlib.pyplot as plt
import numpy as np
import random


n=1000 #1000個點
x=np.random.randn(n)  #生成1000個x軸坐標
y=np.random.randn(n)
plt.scatter(x,y) #畫圖
plt.show()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM