首頁 > 軟體

Python matplotlib之折線圖的各種樣式與畫法總結

2022-12-23 14:00:46

上述圖的完整程式碼如下:

from numpy import *
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import pylab as pl
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

y1 = [0.92787363, 0.92436059, 0.92380563, 0.92169979, 0.92215771]
y2 = [0.87410227, 0.85341922, 0.84874221, 0.83406411, 0.83610876]
y3 = [0.77410227, 0.75341922, 0.74874221, 0.73406411, 0.73610876]
y4 = [0.67410227, 0.65341922, 0.64874221, 0.63406411, 0.63610876]
y5 = [0.57410227, 0.55341922, 0.54874221, 0.53406411, 0.53610876]
y6 = [0.47410227, 0.45341922, 0.44874221, 0.43406411, 0.43610876]
y7 = [0.37410227, 0.35341922, 0.34874221, 0.33406411, 0.33610876]
y8 = [0.27410227, 0.25341922, 0.24874221, 0.23406411, 0.23610876]
y9 = [0.17410227, 0.15341922, 0.14874221, 0.13406411, 0.13610876]
y10 = [0.07410227, 0.05341922, 0.04874221, 0.03406411, 0.03610876]
y11 = [-0.07410227, -0.05341922, -0.04874221, -0.03406411, -0.03610876]
y12 = [-0.17410227, -0.15341922, -0.14874221, -0.13406411, -0.13610876]

x = ['1','2','3','4','5']

plt.figure() #figsize是圖片的大小`fig = plt.figure(figsize = (7,5))
ax=plt.axes()

# plt.grid(zorder=0, linewidth = "0.5", linestyle = "-.")  #顯示網格,zorder控制網格顯示的前後, color='#738CBC'   , color='#DFD478'

ax.plot(x, y1, marker='s', linestyle = '-.', lw=2, label='q=1') #‘s' : 方塊狀
ax.plot(x, y2, marker='o', linestyle = '-.', lw=2, label='q=2') #o' : 實心圓
ax.plot(x, y3, marker='^', linestyle = 'dotted', lw=2, label='q=3') #‘^' : 正三角形
ax.plot(x, y4, marker='v', linestyle = 'dotted', lw=2, label='q=4') #‘v' : 反正三角形
ax.plot(x, y5, marker='+', linestyle = 'dotted', lw=2, label='q=5') #‘+' : 加號
ax.plot(x, y6, marker='*', linestyle = 'dotted', lw=2, label='q=6') #‘*' : 星號
ax.plot(x, y7, marker=',', linestyle = 'dotted', lw=2, label='q=7') #‘,':點
ax.plot(x, y8, marker='x', linestyle = ':', lw=2, label='q=8') #‘x' : x號  
ax.plot(x, y9, marker='p', linestyle = 'dashed', lw=2, label='q=9') #‘p' : 五角星  
ax.plot(x, y10, marker='1', linestyle = 'dotted', lw=2, label='q=10') #‘1' : 三腳架標記  
ax.plot(x, y11, marker='2', linestyle = 'dotted', lw=2, label='q=11') #‘2' : 三腳架標記 
ax.plot(x, y12, marker='o', linestyle = '-', lw=2, label='q=12', markerfacecolor='white') #空心圓

plt.legend(bbox_to_anchor=(1.20, 1), loc=1, borderaxespad=0)   #顯示標籤,並放在外側
plt.xlabel('p',fontsize=20) #設定y軸的標籤
plt.ylabel('values',fontsize=20) #設定y軸的標籤
plt.savefig("values",dpi=500, bbox_inches='tight') # 儲存圖片

1. 折線形狀

  • 直線: linestyle = ‘-’ 或 省略
  • 破折線: linestyle = ‘–’ 或 linestyle = ‘dashed’
  • 點劃線: linestyle = ‘-.’ 或 linestyle = ‘dashdot’
  • 虛線: linestyle = ‘:’ 或 linestyle = ‘dotted’

2. 資料點形狀

  • ‘s’ : 方塊狀
  • ‘o’ : 實心圓
  • ‘^’ : 正三角形
  • ‘v’ : 反正三角形
  • ‘+’ : 加號
  • ‘*’ : 星號
  • ‘,’:點
  • ‘x’ : x號
  • ‘p’ : 五角星
  • ‘1’ : 三腳架標記
  • ‘2’ : 三腳架標記

若是想設定空心圓則使用如下引數:

markeredgecolor # 圓邊緣的顏色

markeredgewidth # 圓的線寬

ax.plot(x, y12, marker='o', linestyle = '-', lw=2, label='q=12', markerfacecolor='white') #空心圓

3. 折線顏色

若是想修改折線的顏色,使用color:表示的折線的顏色,如:red:紅色,blue:藍色等;

y1 = [0.92787363, 0.92436059, 0.92380563, 0.92169979, 0.92215771]
x = ['1','2','3','4','5']

plt.figure(figsize = (13,10)) # 設定畫布 大小為13*10
ax=plt.axes()

plt.grid(zorder=0, linewidth = "0.5", linestyle = "-.")  #顯示網格,zorder控制網格顯示的前後

ax.plot(x, y1, marker='o', ls='-', lw=2, label='q=1', color='#738CBC')

plt.legend()   #顯示標籤
plt.xlabel('p',fontsize=20)
plt.ylabel('ACC',fontsize=20)

4. 新增網格

其中,plt.grid(zorder=0, linewidth = "0.5", linestyle = "-.") #顯示網格,zorder控制網格顯示的前後是顯示網格的語句。

  • 新增網格: plt.grid()
  • 只顯示垂直格線: plt.grid(axis=‘x’)
  • 只顯示水平格線: plt.grid(axis=‘y’)
  • 網格樣式: linestyle=‘-’ 和 折線樣式相同常用這四種:
  • 直線: linestyle = ‘-’ 或 省略
  • 破折線: linestyle = ‘–’ 或 linestyle = ‘dashed’
  • 點劃線: linestyle = ‘-.’ 或 linestyle = ‘dashdot’
  • 虛線: linestyle = ‘:’ 或 linestyle = ‘dotted’
  • 格線寬度:linewidth=num

上述圖的完整程式碼如下:

from matplotlib import pyplot as plt
# 新增網格
# 選擇字型顯示中文
plt.rcParams['font.family'] = ['Microsoft YaHei']
# 定義座標資料
y = [0.92787363, 0.92436059, 0.92380563, 0.92169979, 0.92215771]
x = ['1','2','3','4','5']

# 第一張表
plt.subplot(2, 2, 1)
# 傳入資料
plt.plot(x, y, color='#738CBC', marker='o')
# 新增標題
plt.title("第一張表,加座標和顏色", color='blue', fontsize=10)
# 新增網格
plt.grid()

# 第二張表
plt.subplot(2, 2, 2)
plt.plot(x, y)
plt.title("垂直格線,1寬", color='blue', fontsize=10)
plt.grid(axis='x', linewidth=1)

# 第三張表
plt.subplot(2, 2, 3)
plt.plot(x, y)
plt.title("水平格線,破折線,0.5寬", color='blue', fontsize=10)
plt.grid(axis='y', linestyle='--', linewidth=0.5)

# 第四張表
plt.subplot(2, 2, 4)
plt.plot(x, y)
plt.title("藍色虛線格線", color='blue', fontsize=10)
plt.grid(color='b', linestyle=':')

# 總標題
plt.suptitle("網格對比", color='blue', fontsize=15)
plt.tight_layout()  # 自動調整子圖引數,使之自動填充整個影象區域
# 繪圖
plt.show()

總結

到此這篇關於Python matplotlib之折線圖的各種樣式與畫法的文章就介紹到這了,更多相關matplotlib折線圖畫法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com