首頁 > 軟體

matplotlib畫圖之修改座標軸刻度問題

2022-11-28 22:00:54

一、未設定橫縱座標軸刻度(預設情況下)

範例程式碼1

# 修改x軸與y軸的刻度
import matplotlib.pyplot as plt
lst1 = list(range(0,15))
lst2 = list(range(15,30))
plt.plot(lst1,lst2)
plt.show()

結果如下:

此時上圖中的座標軸刻度間距為2

二、修改座標軸刻度

通過新增以下程式碼對座標軸刻度進行修改

from pylab import xticks,yticks,np
# 修改橫座標的刻度
xticks(np.linspace(0,15,16,endpoint=True))
# 修改縱座標的刻度
yticks(np.linspace(15,30,16,endpoint=True))

linspace()中四個引數的意義(本人理解,可能有誤!):

  • 第一個引數為座標的起始位置
  • 第二個引數為座標的終止位置
  • 第三個引數為將座標分成多少份(該例中將0-15分成了16份,每刻度為1)
  • 第四個引數為是否取最後一個點(預設是endpoint=False左開右閉)

範例程式碼2

# 修改x軸與y軸的刻度
import matplotlib.pyplot as plt
from pylab import xticks,yticks,np
lst1 = list(range(0,15))
lst2 = list(range(15,30))
"""
linspace()中四個引數的意義:
第一個引數為座標的起始位置
第二個引數為座標的終止位置
第三個引數為將座標分成多少份(該例中將0-15分成了16份,每刻度為1)
第四個引數為是否取最後一個點(預設是endpoint=False左開右閉)
"""
# 修改橫座標的刻度
xticks(np.linspace(0,15,16,endpoint=True))
# 修改縱座標的刻度
yticks(np.linspace(15,30,16,endpoint=True))
plt.plot(lst1,lst2)
plt.show()

結果如下:

此時上圖中的座標軸刻度間距為1

三、給對應的橫座標刻度加上標籤文字

預設情況下刻度顯示的文字就是刻度本身

如果要修改刻度的話,需要在plt.xticks()方法中在再新增一個引數,在範例程式碼2中新增如下程式碼

xticks_labels = ['11點{}分'.format(i) for i in range(0,16)]
# 修改橫座標的刻度,並且為橫座標上的每個刻度新增標籤
xticks(np.linspace(0,15,16,endpoint=True),xticks_labels)

注意:plt.xticks()和plt.yticks()方法,在傳遞進去的第一個引數必須是數位,不能是字串,如果是字串嗎,需要進行替換操作

範例程式碼3

# 修改x軸與y軸的刻度
import matplotlib.pyplot as plt
from pylab import xticks,yticks,np
lst1 = list(range(0,15))
lst2 = list(range(15,30))
"""
linspace()中四個引數的意義:
第一個引數為座標的起始位置
第二個引數為座標的終止位置
第三個引數為將座標分成多少份(該例中將0-15分成了16份,每刻度為1)
第四個引數為是否取最後一個點(預設是endpoint=False左開右閉)
"""
xticks_labels = ['11點{}分'.format(i) for i in range(0,16)]
# 修改橫座標的刻度
xticks(np.linspace(0,15,16,endpoint=True),xticks_labels)
# 修改縱座標的刻度
yticks(np.linspace(15,30,16,endpoint=True))
plt.plot(lst1,lst2)
plt.show()

程式碼執行結果如下:

在範例程式碼3中新增以下程式碼解決中文顯示問題:

from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定預設字型(解決中文無法顯示的問題)
mpl.rcParams['axes.unicode_minus'] = False # 解決儲存影象時負號「-」顯示方塊的問題

完整程式碼如下

# 修改x軸與y軸的刻度
import matplotlib.pyplot as plt
from pylab import xticks,yticks,np
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定預設字型(解決中文無法顯示的問題)
mpl.rcParams['axes.unicode_minus'] = False # 解決儲存影象時負號「-」顯示方塊的問題
lst1 = list(range(0,15))
lst2 = list(range(15,30))
"""
linspace()中四個引數的意義:
第一個引數為座標的起始位置
第二個引數為座標的終止位置
第三個引數為將座標分成多少份(該例中將0-15分成了16份,每刻度為1)
第四個引數為是否取最後一個點(預設是endpoint=False左開右閉)
"""
xticks_labels = ['11點{}分'.format(i) for i in range(0,16)]
# 修改橫座標的刻度
xticks(np.linspace(0,15,16,endpoint=True),xticks_labels)
# 修改縱座標的刻度
yticks(np.linspace(15,30,16,endpoint=True))
plt.plot(lst1,lst2)
plt.show()

程式碼執行結果如下:

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


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