Python使用Matplotlib繪制多個(gè)Y軸刻度的代碼示例
為什么多個(gè)Y軸刻度很重要?
繪制具有不同單位或測(cè)量尺度的數(shù)據(jù)集時(shí),需要多個(gè)Y軸尺度,以幫助進(jìn)行清晰的比較而不會(huì)失真。在以下情況下,這是必要的:
- 不同的單位或測(cè)量尺度:
如果您有多個(gè)具有不同單位或測(cè)量尺度的數(shù)據(jù)集,則使用單獨(dú)的Y軸可以防止失真,并更容易比較趨勢(shì)。 - 相關(guān)但按比例縮放的數(shù)據(jù):
當(dāng)您擁有相關(guān)但幅度不同的數(shù)據(jù)集時(shí),多個(gè)Y軸可以幫助可視化其模式,而無(wú)需一個(gè)數(shù)據(jù)集主導(dǎo)圖。 - 合并不同數(shù)據(jù):
如果您需要覆蓋兩個(gè)或多個(gè)具有不同數(shù)據(jù)類型的數(shù)據(jù)集(例如,溫度和降雨量),多個(gè)Y軸允許您用自己的尺度表示每個(gè)變量。 - 突出關(guān)系:
多個(gè)Y軸可用于突出顯示可能具有不同范圍或單位的兩個(gè)數(shù)據(jù)集之間的關(guān)系或相關(guān)性。 - 避免雜亂:
當(dāng)您有許多數(shù)據(jù)集要顯示時(shí),使用多個(gè)Y軸可以防止混亂,并使圖更具可讀性。 - 增強(qiáng)解釋:
在某些情況下,具有多個(gè)Y軸可以通過在不同數(shù)據(jù)集之間提供清晰的視覺分離來(lái)增強(qiáng)圖的可解釋性。
示例基本步驟
導(dǎo)入必要庫(kù):
import matplotlib.pyplot as plt import numpy as np
創(chuàng)建示例數(shù)據(jù):
x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.exp(-x) y3 = 100 * np.cos(x)
我們將創(chuàng)建第一個(gè)Y軸。要?jiǎng)?chuàng)建軸,我們使用Matplotlib。
1.創(chuàng)建第一個(gè)Y軸
fig, ax1 = plt.subplots()
在這里,我們創(chuàng)建了一個(gè)matplotlib圖形和軸“ax1”來(lái)表示第一個(gè)y軸。plt.subplots
(基本上用于創(chuàng)建單個(gè)子圖和圖形。
2.在第一個(gè)Y軸上繪制第一個(gè)數(shù)據(jù)集
現(xiàn)在我們的下一步是在第一個(gè)Y軸上繪制第一個(gè)數(shù)據(jù)集。這里,我們繪制了我們定義的第一個(gè)數(shù)據(jù)集“y1”,并在ax1.plot()
的幫助下繪制了第一個(gè)Y軸“ax1”。這里我們使用“b”作為顏色,因?yàn)槲覀兿M撬{(lán)色的,然后我們?cè)O(shè)置X和Y軸的標(biāo)簽。我們還使用了tick_params()
將Y軸的顏色設(shè)置為藍(lán)色。
# Create the first plot with the left Y-axis fig, ax1 = plt.subplots(figsize=(8, 6)) # Plot the first dataset on the first Y-axis ax1.plot(x, y1, 'b', label='y1 (sin(x))') # Shorthand 'b' for blue color # Set labels and ticks for the first Y-axis ax1.set_xlabel('X-axis') ax1.set_ylabel('y1', color='b') ax1.tick_params('y', colors='b') # Display the plot plt.title('Plotting the First Dataset on the First Y-Axis') plt.show()
3.創(chuàng)建第二個(gè)Y軸
ax2 = ax1.twinx()
在這里,我們使用ax1.twinx()
方法創(chuàng)建第二個(gè)軸“ax2”,它將與第一個(gè)Y軸共享相同的X軸。
4.在第二個(gè)Y軸上繪制第二個(gè)數(shù)據(jù)集
我們?cè)谏厦鎰?chuàng)建的第二個(gè)y軸上繪制第二個(gè)數(shù)據(jù)集?,F(xiàn)在我們使用“g”,因?yàn)槲覀兿雽㈩伾O(shè)置為綠色。然后設(shè)置y軸的標(biāo)簽。通過使用tick_params
我們可以將Y軸的顏色設(shè)置為綠色?,F(xiàn)在我們將第二組數(shù)據(jù)繪制在第二個(gè)Y軸上。
fig, ax2 = plt.subplots(figsize=(8, 6)) ax2.plot(x, y2, 'g', label='y2 (exp(-x))') ax2.set_ylabel('y2', color='g') ax2.tick_params('y', colors='g') # Display the plot plt.title('Plotting the Second Dataset on the Second Y-Axis') plt.show()
5.創(chuàng)建第三個(gè)Y軸
ax3 = ax1.twinx()
6.在第三個(gè)Y軸上繪制第三個(gè)數(shù)據(jù)集
fig, ax3 = plt.subplots(figsize=(8, 6)) ax3.plot(x, y3, 'r', label='y3 (100*cos(x))') ax3.set_ylabel('y3', color='r') ax3.tick_params('y', colors='r') # Display the plot plt.title('Plotting the third Dataset on the third Y-Axis') plt.show()
7.添加圖例
lines1, labels1 = ax1.get_legend_handles_labels() lines2, labels2 = ax2.get_legend_handles_labels() lines3, labels3 = ax3.get_legend_handles_labels() lines = lines1 + lines2 + lines3 labels = labels1 + labels2 + labels3
8.添加標(biāo)題并展示
plt.title('Multiple Y-axis Scales') plt.show()
在這張圖中,我們可以清楚地看到三個(gè)y軸和x軸。
結(jié)論
我們已經(jīng)討論了如何在這個(gè)項(xiàng)目中導(dǎo)入所需的庫(kù),即matplotlib和numpy,然后我們?yōu)槎鄠€(gè)數(shù)據(jù)集創(chuàng)建了示例數(shù)據(jù),然后我們討論了第一個(gè)y軸,第二個(gè)y軸,第三個(gè)y軸,在這之間我們利用twinx()函數(shù)來(lái)創(chuàng)建共享同一個(gè)x軸的y軸。然后在添加圖例后,完成了繪制。希望這對(duì)在Matplotlib中創(chuàng)建多個(gè)Y軸刻度有幫助。
以上就是Python使用Matplotlib繪制多個(gè)Y軸刻度的代碼示例的詳細(xì)內(nèi)容,更多關(guān)于Python Matplotlib繪制Y軸刻度的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決python2.7用pip安裝包時(shí)出現(xiàn)錯(cuò)誤的問題
這篇文章主要介紹了在python2.7用pip安裝包時(shí)出現(xiàn)錯(cuò)誤問題的解決方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01一步步教你用Python實(shí)現(xiàn)2048小游戲
相信2048這個(gè)游戲?qū)Υ蠹襾?lái)說一定不陌生,下面這篇文章就主要給大家介紹了怎么用Python實(shí)現(xiàn)2048小游戲,文中通過注釋與示例代碼介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們一起來(lái)看看吧。2017-01-01解決python給列表里添加字典時(shí)被最后一個(gè)覆蓋的問題
今天小編就為大家分享一篇解決python給列表里添加字典時(shí)被最后一個(gè)覆蓋的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-01-01python實(shí)現(xiàn)mysql的讀寫分離及負(fù)載均衡
這篇文章主要介紹了python實(shí)現(xiàn)mysql的讀寫分離及負(fù)載均衡 ,需要的朋友可以參考下2018-02-02十行Python3代碼實(shí)現(xiàn)去除pdf文件水印
pfd文檔一般無(wú)法直接去除水印,需要先將pfd文檔轉(zhuǎn)換成圖片,在逐一對(duì)圖片進(jìn)行水印去除操作,最后在把圖片插入到pdf文檔中,這樣就很繁瑣。本文將用十行Python3代碼輕輕松松實(shí)現(xiàn)PDF文件水印去除,快來(lái)了解一下吧2022-02-02PyTorch如何使用embedding對(duì)特征向量進(jìn)行嵌入
這篇文章主要介紹了PyTorch如何使用embedding對(duì)特征向量進(jìn)行嵌入問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02