4.11Python數據處理篇之Matplotlib系列(十一)---圖例,網格,背景的設置


目錄

前言

本章節將講一下三個內容,圖例,網格,背景

(一)圖例legend

1.默認不帶參數的圖例

(1)說明:

默認情況下,是自適應的放在圖例的位置,需要在繪圖的時候,添加Label標識。

在使用plt.legend()顯示圖例

(2)源代碼:

# 導入模塊
import matplotlib.pyplot as plt
import numpy as np

# 數據
x = np.linspace(-5, 5, 50)
y1 = x
y2 = x**2
y3 = x**(1/2)

# 繪圖
plt.plot(x, y1, "--", label="y1")
plt.plot(x, y2, "o-", label="y2")
plt.plot(x, y3, "-.", label="y3")

# 展示圖例
plt.legend()

# 展示
plt.show()

(3)展示效果

01.png

2.添加參數的圖例

(1)可選參數

參數 說明 默認值
loc=int\string 圖例所在的位置 0
fontsize=int\string 圖例的文字大小 當前文字的大小
facecolor='b' 圖例的背景色 'w'
edgecolor='b' 圖例的邊框顏色 'w'
title=string 圖例的標題 None
shadow=bool 是否顯示圖例的陰影 False
fancybox=bool 是否顯示圓角 False
framealpha=float 圖例的透明度 None
  1. 位置的參數值:可以使用字符串與數字

02.png

  1. 文字的大小值:'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large',或者直接用數字表示大小。
  2. 透明度的范圍:0.0~1.0,1.0是不透明,0.0是全透明,從0.0到1.0越來越不透明。

(2)源代碼:

# 導入模塊
import matplotlib.pyplot as plt
import numpy as np

# 數據
x = np.linspace(-5, 5, 50)
y1 = x
y2 = x**2
y3 = x**(1/2)

# 繪圖
plt.plot(x, y1, "--", label="y1")
plt.plot(x, y2, "o-", label="y2")
plt.plot(x, y3, "-.", label="y3")

# 展示圖例
plt.legend(loc='upper right', 
           fancybox=True, 
           title="l am legend", 
           edgecolor='r', 
           shadow=True, 
           fontsize='x-large', 
           facecolor='b', 
           framealpha=0.3)

# 展示
plt.show()

(3)輸出效果:

03.png

3.將圖例移動到框外

(1)說明:

bbox_to_anchor=(x, y) 可以移動到任意位置

x,y是float:0.0~1.0,表示是x,y軸的比例,x:左->右增大, y:下->上 增大

並且結合loc來確定位置。

(2)源代碼:

# 導入模塊
import matplotlib.pyplot as plt
import numpy as np

# 數據
x = np.linspace(-5, 5, 50)
y1 = x
y2 = x**2
y3 = x**(1/2)

# 繪圖
plt.plot(x, y1, "--", label="y1")
plt.plot(x, y2, "o-", label="y2")
plt.plot(x, y3, "-.", label="y3")

# 展示圖例
plt.legend(bbox_to_anchor=(1, 0.8), loc=3)

# 展示
plt.show()

(3)輸出效果:

04.png

(二)網格grid

1.說明

語法:plt.grid([可選參數])

可選參數 說明 默認值
b=bool 是否顯示網格 Fales
color='r' 網線的顏色 'w'
linestyle='--' 網格的線形 ‘-’
linewidth=1 網格的線寬 1
alpha=0.3 網線的透明度0.0~1.0 1
axis={"both",'x',"y"} 表示在哪些方向軸上畫網線,x軸,y軸 "both"
which={"both","major","minor"} 表示在哪些刻度上畫網線,主刻度,還是小刻度 ”both"

2.源代碼:

# 導入模塊
import matplotlib.pyplot as plt
import numpy as np

# 數據
x = np.linspace(-5, 5, 50)
y = x**2


# 繪圖
plt.plot(x, y)


# 設置網格線
plt.grid(b=True, 
         color='r', 
         linestyle='--', 
         linewidth=1, 
         alpha=0.3, 
         axis='x', 
         which="major")

# 展示
plt.show()

3.輸出效果

05.png

(三)背景axses

1.設置全局的背景色:

(1)說明:

  1. 設置figure窗體的顏色:plt.rcParams['figure.facecolor'] = 'color'
  2. 設置axes繪圖區的顏色:plt.rcParams['axes.facecolor'] = 'color'

(2)源代碼:

# 導入模塊
import matplotlib.pyplot as plt
import numpy as np

# 數據
x = np.linspace(-5, 5, 50)
y = x**2

# =====設置背景====
# 設置figure窗體的顏色
plt.rcParams['figure.facecolor'] = 'b'
# 設置axes繪圖區的顏色
plt.rcParams['axes.facecolor'] = 'g'

# 繪圖
plt.plot(x, y)

# 展示
plt.show()

(3)輸出效果:

06.png

2.設置局部的背景色

(1)說明:

  1. 獲取ax對象:ax = plt.gca()

  2. 設置ax區域背景顏色:ax.patch.set_facecolor("gray")

  3. 設置ax區域背景顏色透明度:ax.patch.set_alpha(0.5)

(2)源代碼:

# 導入模塊
import matplotlib.pyplot as plt
import numpy as np

# 數據
x = np.linspace(-5, 5, 50)
y = x**2

# 繪圖
plt.plot(x, y)

# =====設置背景====
# 得到ax對象
ax = plt.gca()

# 設置ax區域背景顏色
ax.patch.set_facecolor("gray")

# 設置ax區域背景顏色透明度
ax.patch.set_alpha(0.5)

# 展示
plt.show()

(3)輸出效果:

07.png

作者:Mark

日期:2019/03/12 周二


免責聲明!

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



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