İ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 )

İki y eksenli Matplotlib

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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir