Python使用Matplotlib繪制多個Y軸刻度的代碼示例
為什么多個Y軸刻度很重要?
繪制具有不同單位或測量尺度的數(shù)據(jù)集時,需要多個Y軸尺度,以幫助進行清晰的比較而不會失真。在以下情況下,這是必要的:
- 不同的單位或測量尺度:
如果您有多個具有不同單位或測量尺度的數(shù)據(jù)集,則使用單獨的Y軸可以防止失真,并更容易比較趨勢。 - 相關(guān)但按比例縮放的數(shù)據(jù):
當(dāng)您擁有相關(guān)但幅度不同的數(shù)據(jù)集時,多個Y軸可以幫助可視化其模式,而無需一個數(shù)據(jù)集主導(dǎo)圖。 - 合并不同數(shù)據(jù):
如果您需要覆蓋兩個或多個具有不同數(shù)據(jù)類型的數(shù)據(jù)集(例如,溫度和降雨量),多個Y軸允許您用自己的尺度表示每個變量。 - 突出關(guān)系:
多個Y軸可用于突出顯示可能具有不同范圍或單位的兩個數(shù)據(jù)集之間的關(guān)系或相關(guān)性。 - 避免雜亂:
當(dāng)您有許多數(shù)據(jù)集要顯示時,使用多個Y軸可以防止混亂,并使圖更具可讀性。 - 增強解釋:
在某些情況下,具有多個Y軸可以通過在不同數(shù)據(jù)集之間提供清晰的視覺分離來增強圖的可解釋性。
示例基本步驟
導(dǎo)入必要庫:
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)建第一個Y軸。要創(chuàng)建軸,我們使用Matplotlib。
1.創(chuàng)建第一個Y軸
fig, ax1 = plt.subplots()
在這里,我們創(chuàng)建了一個matplotlib圖形和軸“ax1”來表示第一個y軸。plt.subplots
(基本上用于創(chuàng)建單個子圖和圖形。
2.在第一個Y軸上繪制第一個數(shù)據(jù)集
現(xiàn)在我們的下一步是在第一個Y軸上繪制第一個數(shù)據(jù)集。這里,我們繪制了我們定義的第一個數(shù)據(jù)集“y1”,并在ax1.plot()
的幫助下繪制了第一個Y軸“ax1”。這里我們使用“b”作為顏色,因為我們希望它是藍色的,然后我們設(shè)置X和Y軸的標簽。我們還使用了tick_params()
將Y軸的顏色設(shè)置為藍色。
# 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)建第二個Y軸
ax2 = ax1.twinx()
在這里,我們使用ax1.twinx()
方法創(chuàng)建第二個軸“ax2”,它將與第一個Y軸共享相同的X軸。
4.在第二個Y軸上繪制第二個數(shù)據(jù)集
我們在上面創(chuàng)建的第二個y軸上繪制第二個數(shù)據(jù)集。現(xiàn)在我們使用“g”,因為我們想將顏色設(shè)置為綠色。然后設(shè)置y軸的標簽。通過使用tick_params
我們可以將Y軸的顏色設(shè)置為綠色。現(xiàn)在我們將第二組數(shù)據(jù)繪制在第二個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)建第三個Y軸
ax3 = ax1.twinx()
6.在第三個Y軸上繪制第三個數(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.添加標題并展示
plt.title('Multiple Y-axis Scales') plt.show()
在這張圖中,我們可以清楚地看到三個y軸和x軸。
結(jié)論
我們已經(jīng)討論了如何在這個項目中導(dǎo)入所需的庫,即matplotlib和numpy,然后我們?yōu)槎鄠€數(shù)據(jù)集創(chuàng)建了示例數(shù)據(jù),然后我們討論了第一個y軸,第二個y軸,第三個y軸,在這之間我們利用twinx()函數(shù)來創(chuàng)建共享同一個x軸的y軸。然后在添加圖例后,完成了繪制。希望這對在Matplotlib中創(chuàng)建多個Y軸刻度有幫助。
以上就是Python使用Matplotlib繪制多個Y軸刻度的代碼示例的詳細內(nèi)容,更多關(guān)于Python Matplotlib繪制Y軸刻度的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決python2.7用pip安裝包時出現(xiàn)錯誤的問題
這篇文章主要介紹了在python2.7用pip安裝包時出現(xiàn)錯誤問題的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01