Python開發【模塊】:matplotlib 繪制折線圖


matplotlib 

1、安裝matplotlib

linux系統安裝

# 安裝matplotlib模塊

$ sudo apt-get install python3-matplotlib
# 如果是python2.7 執行如下命令
$ sudo apt-get install python-matplotlib
# 如果你安裝較新的Python,安裝模塊一樂的一些庫
$ sudo apt-get install python3.5-dev python3.5-tk tk-dev
$ sudo apt-get install libfreetype6-dev g++
# 再使用pip來安裝模塊
$ pip install --user matplotlib

OS系統中安裝 

# 安裝matplotlib模塊

$ pip install --user matplotlib

windows系統中安裝

# 安裝matplotlib模塊

$pip3 install matplotlib

進入終端執行import matplotlib 不報錯表示執行成功

 

2、繪制簡單的折線圖

創建mpl_squares.py文件:

import matplotlib.pyplot as plt     # 導入模塊

squares = [1,4,9,16,25]         # 指定列表Y坐標為列表中的值,X坐標為列表下標
plt.plot(squares)           # 傳入列表
plt.show()                  # 輸出圖像

繪圖:

修改標簽文字和線條粗細:

import matplotlib.pyplot as plt     # 導入模塊

squares = [1,4,9,16,25]         # 指定列表Y坐標為列表中的值,X坐標為列表下標
plt.plot(squares,linewidth=5)           # linewidth決定繪制線條的粗細

plt.title('Square Numbers',fontsize=24)     # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)

plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
plt.show()                  # 輸出圖像

繪圖:

 ③ 校正圖形(設定X坐標):

import matplotlib.pyplot as plt     # 導入模塊

squares = [1,4,9,16,25]         # 指定列表Y坐標為列表中的值
input_values = [1,2,3,4,5]
plt.plot(input_values,squares,linewidth=5)           # linewidth決定繪制線條的粗細

plt.title('Square Numbers',fontsize=24)     # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)

plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
plt.show()                  # 輸出圖像

繪圖:

 

 

3、繪制散點圖

創建scatter_sqares.py:

import matplotlib.pyplot as plt

plt.scatter(2,4,s=200)      #X坐標2,Y坐標4 S=200 點大小

plt.title('Square Numbers',fontsize=24)     # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)

plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
plt.show()                  # 輸出圖像

繪圖:

繪制一系列點:

import matplotlib.pyplot as plt

x_values = [1,2,3,4,5]      # 指定X軸
y_values = [1,4,9,16,25]        # 指定Y軸

plt.scatter(x_values,y_values,s=100)

--snip---

plt.show()                  # 輸出圖像

繪圖

自動計算數據:

import matplotlib.pyplot as plt

x_values = list(range(1,1001))     # 指定X軸
y_values = [x**2 for x in x_values]        # 指定Y軸

plt.scatter(x_values,y_values,s=1,edgecolors='none')   #edgecolors 刪除數據點輪廓

plt.title('Square Numbers',fontsize=24)     # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)

plt.axis([0,1100,0,1100000])                # 設置坐標取值范圍
plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
plt.show()                  # 輸出圖像

繪圖:

自定義顏色

要修改數據點顏色,可向scatter()傳遞參數c,並將其設置為要使用的顏色的名稱

plt.scatter(x_values,y_values,s=1,edgecolors='none',c='red')   # 紅色

你還可以使用RGB顏色模式自定義顏色,要指定自定義顏色,傳入一個元祖,分別表示紅色,綠色,藍色,0~1范圍,值越接近0,指定的顏色越深,值越接近1,指定的顏色越淺

plt.scatter(x_values,y_values,s=1,edgecolors='none',c=(0,0,0.8))   # 藍色

顏色映射-漸變色

import matplotlib.pyplot as plt

x_values = list(range(1,1001))     # 指定X軸
y_values = [x**2 for x in x_values]        # 指定Y軸

plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=1,edgecolors='none',)   # 從淺藍色到深藍色

plt.title('Square Numbers',fontsize=24)     # 標題
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)

plt.axis([0,1100,0,1100000])                # 設置坐標取值范圍
plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
plt.show()                  # 輸出圖像

繪圖:

自動保存圖標:

plt.savefig('squares_plot.png',bbox_inches='tight')

 

4、隨機漫步

創建random_walk.py文件:

from random import choice

class RandWalk(object):

    def __init__(self,count=5000):
        self.count = count
        self.x_list = [0]
        self.y_list = [0]

    def fill_walk(self):
        while len(self.x_list) < self.count:
            x_step = self.fill_step()
            y_step = self.fill_step()

            if x_step ==0 or y_step == 0:
                continue
            next_x = self.x_list[-1] + x_step
            next_y = self.y_list[-1] + y_step

            self.x_list.append(next_x)
            self.y_list.append(next_y)

    def fill_step(self):
        direction = choice([-1, 1])
        distance = choice([2, 4, 6, 8, 10])

        return direction*distance

創建rw_visual.py文件:

import matplotlib.pyplot as plt

from random_walk import RandWalk

rw = RandWalk()
rw.fill_walk()
point_numbers = list(range(rw.count))

plt.scatter(rw.x_list,rw.y_list,c=point_numbers,cmap=plt.cm.Blues,s=1)  #顏色由淺轉深
plt.show()

繪圖:

調整尺寸適合屏幕、隱藏X軸Y軸,繪制起點和終點:

import matplotlib.pyplot as plt

from random_walk import RandWalk

rw = RandWalk()
rw.fill_walk()
point_numbers = list(range(rw.count))
plt.figure(dpi=128,figsize=(10,6))              # 設置顯示圖片大小

plt.scatter(rw.x_list,rw.y_list,c=point_numbers,cmap=plt.cm.Blues,s=1)  # 顏色由淺轉深
plt.scatter(0,0,c='green',edgecolors='none',s=10)              # 起始顏色
plt.scatter(rw.x_list[-1],rw.y_list[-1],c='red',edgecolors='none',s=10)  # 終點顏色

plt.axes().get_xaxis().set_visible(False)       # 隱藏X軸
plt.axes().get_yaxis().set_visible(False)       # 隱藏Y軸

plt.show()

繪圖:

 


免責聲明!

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



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