İki y eksenli bir matplotlib grafiği nasıl oluşturulur
İki y eksenine sahip bir Matplotlib grafiği oluşturmanın en kolay yolu twinx() fonksiyonunu kullanmaktır.
Aşağıdaki örnekte bu fonksiyonun pratikte nasıl kullanılacağı gösterilmektedir.
Örnek: İki Y eksenli bir Matplotlib grafiği oluşturun
Aşağıdaki iki panda DataFrame’e sahip olduğumuzu varsayalım:
import pandas as pd #createDataFrames df1 = pd. DataFrame ({' year ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' sales ': [14, 16, 19, 22, 24, 25, 24, 24, 27, 30]}) df2 = pd. DataFrame ({' year ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' leads ': [4, 4, 4, 5, 4, 5, 7, 8, 5, 3]})
Her iki DataFrame de 1 ila 10 arasında değişen “yıl” değişkenini paylaşır, ancak ilk DataFrame her yıl toplam satışları görüntülerken, ikinci DataFrame her yıl toplam potansiyel satışları görüntüler.
İki Y eksenli bir grafik üzerinde satışları ve potansiyel müşterileri görüntüleyen bir Matplotlib grafiği oluşturmak için aşağıdaki kodu kullanabiliriz:
import matplotlib. pyplot as plt
#define colors to use
col1 = ' steelblue '
col2 = ' red '
#define subplots
fig,ax = plt. subplots ()
#add first line to plot
ax. plot (df1. year , df1. sales , color=col1)
#add x-axis label
ax. set_xlabel (' Year ', fontsize= 14 )
#add y-axis label
ax. set_ylabel (' Sales ', color=col1, fontsize= 16 )
#define second y-axis that shares x-axis with current plot
ax2 = ax. twinx ()
#add second line to plot
ax2. plot (df2. year , df2. leads , color=col2)
#add second y-axis label
ax2. set_ylabel (' Leads ', color=col2, fontsize= 16 )
Grafiğin sol tarafındaki y ekseni yıllık toplam satışları, sağ tarafındaki y ekseni ise yıllık toplam potansiyel satışları gösterir.
Grafikteki mavi çizgi yıllık toplam satışları, kırmızı çizgi ise yıllık toplam olası satışları temsil eder.
Grafikteki çizgilerin görünümünü değiştirmek için işaretçi ve çizgi genişliği bağımsız değişkenlerini kullanmaktan çekinmeyin:
import matplotlib. pyplot as plt
#define colors to use
col1 = ' steelblue '
col2 = ' red '
#define subplots
fig,ax = plt. subplots ()
#add first line to plot
ax. plot (df1. year , df1. sales , color=col1, marker=' o ', linewidth= 3 )
#add x-axis label
ax. set_xlabel (' Year ', fontsize= 14 )
#add y-axis label
ax. set_ylabel (' Sales ', color=col1, fontsize= 16 )
#define second y-axis that shares x-axis with current plot
ax2 = ax. twinx ()
#add second line to plot
ax2. plot (df2. year , df2. leads , color=col2, marker=' o ', linewidth= 3 )
#add second y-axis label
ax2. set_ylabel (' Leads ', color=col2, fontsize= 16 )
Her iki satırın da artık daha geniş olduğunu ve ayrı ayrı veri noktalarını görüntülemek için “o” işaretleri içerdiğini unutmayın.
Ek kaynaklar
Aşağıdaki eğitimler Matplotlib’de diğer genel işlemlerin nasıl gerçekleştirileceğini açıklamaktadır:
Matplotlib’de eksen etiketi konumu nasıl ayarlanır
Matplotlib’de eksen aralıkları nasıl ayarlanır
Matplotlib’de X ekseni değerleri nasıl ayarlanır