Veri görselleştirme keşifçi veri analizinde önemli bir rol oynar. Grafikler yardımı ile veride bulunan trendleri, değişkenler arası ilişkileri ve gizli örüntüleri hızlıca keşfedebiliriz.
İki sayısal değişken arasındaki ilişkiyi tespit etmek istediğimiz zaman saçılım grafikleri (scatterplot) oldukça kullanışlıdır. Peki, birbiri arasında ilişki olan iki değişkenin farklı kategorilerdeki ilişkisini görmek istediğimiz zaman ne yapabiliriz?
Bu noktada yanıt olarak karşımıza dörtlü çeyrek grafikleri (quadrant chart) çıkıyor. Teknoloji araştırma şirketi Gartner tarafından popülerleştirilen ve Gartner Sihirli Çeyrekler (Gartner’s Magic Quadrant) adını da alan bu grafik türü özellikle ürün, şirket analizlerinde sıkça kullanılmaktadır. İş analizlerindeki yaygın kullanımı nedeniyle iş matrisi (business matrix) olarak da adlandırılır.

Gartner Veri Analitiği Servis Sağlayıcıları Sihirli Çeyrekler 2021 Grafiği
Üstte bulunan Gartner grafiğine göre Accenture veri analitiği servis sağlayıcıları kategorisinde lider durumda bulunmaktadır.
Dörtlü çeyrekler grafiği, temel olarak dört eşit parçaya bölünmüş bir saçılım grafiğidir. Bu grafik ile benzer veri noktaları, aynı bölge içerisinde yer alır. Bu sayede, belirli karakteristiklere göre benzer performansa sahip veri noktaları kolaylıkla fark edilebilir. Bu grafik türü karar verme süreçlerinde önemli bir rol oynar.
Dörtlü çeyrekler grafiğinin yapı taşları
Dörtlü çeyrekler grafiği üç adet yapı taşından oluşur.
1. X ve Y eksenleri
Dörtlü çeyrekler grafiği için x ve y eksenlerinde yer alacak iki adet metriğe ihtiyaç vardır. Genellikle bağımsız değişken x ekseninde (yatay eksende) yer alırken, bağımlı değişken ise y ekseninde (dikey eksende) yer alır.
- Bağımsız değişken: Araştırma kapsamında kontrol edilen/değiştirilebilen ve bağımlı değişken üzerinde etkisi merak edilen değişkenlerdir.
- Bağımlı değişken: Değeri, bağımsız değişkendeki değişikliklere bağlı olarak değişen ve araştırma kapsamında ölçümlenen değişkenlerdir.
Kişi başına düşen milli gelir ile yaşam ömrü arasındaki ilişkinin araştırıldığı bir çalışmada yaşam ömrü bağımlı değişken, kişi başına düşen milli gelir ise bağımsız değişkendir. Bu tanıma göre yaşam ömrü y-ekseninde, kişi başına düşen milli gelir x-ekseninde yer almalıdır.
2. Kıyas çizgileri (Benchmark lines)
Grafiği dört çeyreğe ayıran geçiş noktalarına verilen isimdir. Bu geçiş noktaları:
- Yıllık bazda artış veya azalışın (Ör: karlılık, şirket büyümesi) gösterildiği bazı durumlarda “sıfır” değerinde,
- Karşılaştırma yapılacağı durumlarda ortalama veya medyan değerlerinde veya
- iş alanına bağlı olarak analist tarafından belirlenen bir rakam değerinde olabilir.
3. Grup değişkeni
X ve Y eksenlerinde yer alan veriyi neye göre gruplamak istediğinizi belirlediğiniz değişkendir. Bu değişken genel olarak size aksiyon aldıracak önemli bir değişken olmalıdır.
Örnek olarak,
- Kişi başına milli gelir ve yaşam ömrü arasındaki ilişkiyi ülke bazında grupladığınız zaman en çok yardıma ihtiyaç duyan ülkeleri belirleyebilirsiniz.
- Reklam maliyeti ve reklam kullanarak elde ettiğiniz satış miktarını reklam platformlarına göre grupladığınız zaman hangi platformlara reklam harcaması yapmayı sürdürmeniz gerektiğini görebilirsiniz.
Python’da dörtlü çeyrekler grafiği nasıl çizilir?
Python’da dörtlü çeyrekler grafiğini çizmek için hazır bir fonksiyon bulunmuyor. Önce bir saçılım grafiği çizip, daha sonra bu grafiği özelleştirerek istediğimiz grafiği elde edeceğiz.
Yazının geri kalanında adım adım grafiği çizdireceğiz. Uygulama sırasında gerçek bir veri seti üzerinde çalışacağız.
Yazının devamında kullanacağımız veri seti bir şirketin pazarlama verilerini içeriyor. Veri seti, 2000’den fazla müşteriye dair yaş, eğitim seviyesi, ülke gibi demografik bilgilerin yanı sıra harcama alışkanlıkları ve kampanya teklifine yönelik davranışlarını barındırıyor.
Örnek veri seti: Bir şirketin kampanya verileri
İlk olarak, yazı boyunca kullanılacak kütüphaneleri çağıracağız.
Veri manipülasyonu için Pandas verileri görselleştirmek için Matplotlib ve Seaborn kütüphanelerini kullanacağız.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
Temel keşifçi veri analizi
Kütüphaneleri çağırdıktan sonra veri setini de çalışma dosyasına çağırıp, tanımak için biraz inceleyeceğiz.
marketing = pd.read_excel("marketing_data.xlsx")
marketing.head()

- Pandas’da bulunan hazır read_excel() fonksiyonu ile veri setini çalışma dosyasına çağırdım.
- Diğer bir Pandas fonksiyonu olan head() ile de veri setinde bulunan ilk 5 kayıtı listeledim.
- Veri setindeki değişken sayısı fazla olduğu için görüntünün anlaşılabilir olması adına tablonun sadece bir bölümünü ekran görüntüsü olarak kaydettim.
- Verinin düzgün bir şekilde yüklendiğini söyleyebilirim.
Veri setinde bulunan değişkenlere biraz daha yakından bakalım.
marketing.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 2240 entries, 0 to 2239 Data columns (total 28 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ID 2240 non-null int64 1 Age 2240 non-null int64 2 Education 2240 non-null object 3 Marital_Status 2240 non-null object 4 Income 2216 non-null object 5 Kidhome 2240 non-null int64 6 Teenhome 2240 non-null int64 7 Dt_Customer 2240 non-null object 8 Recency 2240 non-null int64 9 MntWines 2240 non-null int64 10 MntFruits 2240 non-null int64 11 MntMeatProducts 2240 non-null int64 12 MntFishProducts 2240 non-null int64 13 MntSweetProducts 2240 non-null int64 14 MntGoldProds 2240 non-null int64 15 NumDealsPurchases 2240 non-null int64 16 NumWebPurchases 2240 non-null int64 17 NumCatalogPurchases 2240 non-null int64 18 NumStorePurchases 2240 non-null int64 19 NumWebVisitsMonth 2240 non-null int64 20 AcceptedCmp3 2240 non-null int64 21 AcceptedCmp4 2240 non-null int64 22 AcceptedCmp5 2240 non-null int64 23 AcceptedCmp1 2240 non-null int64 24 AcceptedCmp2 2240 non-null int64 25 Response 2240 non-null int64 26 Complain 2240 non-null int64 27 Country 2240 non-null object dtypes: int64(23), object(5) memory usage: 490.1+ KB
- Veri setinde yer alan değişkenlerin veri tiplerini incelemek için Pandas’ın info() fonksiyonu kullandım.
- Veri setinde 27 adet değişken ve 2,240 gözlem bulunuyor.
- Gelir (Income) değişkeni hariç hiç bir kolonda kayıp değer bulunmuyor.
- Eğitim durumu (Education), askerlik (Marital_Status), müşteri olma tarihi (Dt_Customer) ve ülke (Country) değişkenleri metin (object), geri kalan tüm değişkenler tam sayı (int) veri tipinde bulunuyor.
- Gelir (Income) değişkeninin kolon adında gereksiz bir boşluk var. Ayrıca, bu değişkenin sayısal veri tipine sahip olması gerekirken metin olarak saklandığını görüyoruz. Değişkenin veri temizliğine ihtiyaç duyduğunu söyleyebiliriz. İşlem yaparken sorun çıkaracağı için müdahale edeceğim.
Öncelikle gelir kolonunun kolon adını düzeltelim.
marketing.rename(columns = {" Income ": "Income"}, inplace = True)
- Pandas’ın rename foksiyonunu kullanarak kolon adının başında ve sonunda bulunan boşlukları temizledim.
- inplace = True parametresi ile de değişikliğin tabloda kalıcı olarak uygulanmasını istediğimi belirttim.
Gelir değişkenini biraz daha yakından inceleyelim ve neden metin veri tipinde göründüğünü anlamaya çalışalım.
marketing["Income"].value_counts()
$7,500.00 12 $35,860.00 4 $46,098.00 3 $39,922.00 3 $67,445.00 3 .. $46,086.00 1 $42,243.00 1 $35,788.00 1 $36,026.00 1 $94,871.00 1 Name: Income, Length: 1974, dtype: int64
- Pandas’ın value_counts() fonksiyonunu kullanarak gelir kolonunda bulunan en yaygın değerleri listeledik.
- Tablodan da görüleceği üzere her bir değerin başında dolar işareti ($) ve sayları ayırmak için virgül (,) olduğu için bu değişken metin olarak görünmektedir.
Veri tipi dönüşümünü uygulayabilmek için önce yukarıda keşfettiğimiz problemleri gidermemiz gerekir.
marketing["Income"] = marketing["Income"].str.replace("$", "").str.replace(",", "")
- replace() fonksiyonunu kullanarak önce $ işaretini sonra da virgülleri boşlukla değiştirdik.
- Pandas’da bulunan her bir kolon Series olarak isimlendirilir. Series içerisinde bulunan metin değerler üzerinde işlem yapabilmek için str (string) ifadesine ihtiyaç uyarız.
Veri tipi dönüşümünü uygulayıp, yaptığımız değişikliğin doğru bir şekilde gerçekleşip gerçekleşmediğini kontrol edelim.
marketing["Income"] = marketing["Income"].astype("float")
marketing["Income"].dtypes
marketing["Income"].describe()
dtype('float64') count 2216.000000 mean 52247.251354 std 25173.076661 min 1730.000000 25% 35303.000000 50% 51381.500000 75% 68522.000000 max 666666.000000 Name: Income, dtype: float64
- Pandas’da veri tipi dönüşüm işlemlerini gerçekleştirmek için kullanılan astype() fonksiyonu ile Income değişkeninin veri tipini noktalı sayıları temsil eden float’a çevirdik.
- dtypes ifadesi ile Income değişkeninin veri tipini kontrol ettiğimizde, veri tipinin “float” olarak değiştiğini gördük. İşlemin başarılı olduğunu söyleyebiliriz.
- describe() fonksiyonu ile Income değişkeninin özet istatistiklerini hesapladık. Ortalama gelirin $52,247, en düşük gelirin $1,730 ve en yüksek gelirin $666,666 olarak kaydedildiğini öğrendik.
Grafiğin çizimine başlamadan önce son olarak hızlı bir aykırı değer analizi yapacağız. Aykırı değerleri hızlıca tespit etmek için veri setindeki tüm sayısal değerlerin histogramını çizdireceğiz.
marketing.hist(figsize = (20,14))
plt.show()

- Pandas’ın hist() fonksiyonunu kullanarak tüm veri setindeki sayısal değerlerin histogramını çizdik.
- figsize parametresi ile görselin büyüklüğünü belirledik.
- Burada dikkatimi çeken yaş (Age) ve gelir (Income) değişkenleri var. Yaş değişkeninde yaşı 120, gelir değişkeninde ise geliri 666 bin dolar olan kayıtlar var.
- Çok sık rastlanmasa da bu durumlar tabi ki olabilir. Fakat, özellikle çoğu insan gelir bilgisini paylaşmak istemediği için boş bırakabiliyor veya rastgele bir rakam belirtebiliyor.
Bu nedenle, yaşı 100’den büyük ve geliri 600 binden fazla olan kayıtları veri setinden sileceğim.
mark_final = marketing.loc[(marketing["Income"] < 600000) | (marketing["Age"] < 100), :]
Artık grafiği çizmek için hazırız.
1. Adım: Araştırma sorusunu oluştur.
Grafiklerin keşifçi veri analizinin bir parçası olduğundan bahsetmiştik. Keşifçi veri analizi ile veri seti üzerinde merak ettiğimiz sorulara yanıt ararız.
Kendi alanım olan dijital pazarlama üzerinden örnek verecek olursam, en az maliyetle en değerli müşterileri bulmak pazarlamanın temel hedeflerindendir. Bu sonucu veren reklam platformlarını bulabilirsem, o platformda daha fazla para harcayabilirim.
- Hangi reklam platformları şirketim için en az maliyetle en değerli müşterileri bulmamı sağlıyor?
Eldeki veri seti, bir süpermarkete ait müşteri ve kampanya verilerini içeriyor. Bu marketin analisti olarak, bir sonraki kampanyalarla ilgili önümüzdeki kampanyalarda kullanılmak üzere bazı iç görüler çıkarmak istiyoruz
Şöyle örnek sorular oluşturabiliriz:
Çocuklu ailelerin sağlıklı ürünleri tercih etmesi gayet anlaşılabilir ve beklenen bir durum. Peki, bu her ülkede aynı mı?
- Hangi ülkelerde evdeki çocuk sayısına göre meyve tüketimi artıyor?
Şaraplar özel ve pahalı bir içecek grubu. Aylık geliri yüksek olanların daha fazla tüketmesini bekliyorum. Peki, bu tüketim eğitim seviyesine göre nasıl değişiklik gösteriyor?
- Eğitim seviyesine göre kişilerin aylık geliri değiştikçe şarap tüketimi nasıl değişiyor?
2. Adım: Metrikleri ve grup değişkenini belirle.
Grafik için x ve y eksenlerinde yer alacak metrikleri ve bu metrikleri gruplayacak değişkeni belirlememiz gerekiyor. Bu metrikleri seçerken bir önceki adımda oluşturduğumuz ve cevap aradığımız araştırma sorusunu kullanacağız.
- Hangi reklam platformları şirketim için en az maliyetle en değerli müşterileri bulmamı sağlıyor?
- Bağımlı değişken (y-ekseni): Ortalama Sepet Tutarı (Average Order Value)
- Bağımsız değişken (x-ekseni): Dönüşüm Başına Maliyet (Cost per Conversion)
- Grup değişkeni: Reklam platformları
- Hangi ülkelerde evdeki çocuk sayısına göre meyve tüketimi artıyor?
- Bağımlı değişken (y-ekseni): Meyve tüketimi (MntFruits)
- Bağımsız değişken (x-ekseni): Evdeki çocuk sayısı (Kidhome)
- Grup değişkeni: Ülke (Country)
- Eğitim seviyesine göre kişilerin aylık geliri değiştikçe şarap tüketimi nasıl değişiyor?
- Bağımlı değişken (y-ekseni): Şarap tüketimi (MntWines)
- Bağımsız değişken (x-ekseni): Gelir (Income)
- Grup değişkeni: Eğitim seviyesi (Education)
3. Adım: Veriyi grupla.
Dörtlü çeyrekler grafiğinin saçılım grafiğinin farklı bir versiyonu olduğundan bahsetmiştik. Saçılım grafiğinin dezavantajlarını bu grafik türünde de yaşamak mümkün.
Saçılım grafiğinin problemlerinden bir tanesi de gözlem sayısının çok olduğu durumlarda grafikteki temsili noktaların birbirine girerek anlam çıkarmayı zorlaştırmasıdır.

Gözlem sayısı çok fazla olan saçılım grafiği örneği
Tekil gözlem sayısının çok fazla olduğu durumlarda, veriyi gruplayarak özetleyebilir ve gözlem sayısını azaltabiliriz. Bu şekilde, hem grafiği daha sadeleştirip hem de özet bir bilgi üzerinden çıkarımlar yapabiliriz.
Örnek sorularımızdan biri “hangi ülkelerde evdeki çocuk sayısına göre meyve tüketimi artıyor”du. Ülkeye göre ortalama çocuk sayısı ve meyve tüketimini hesaplayacağız. Hesaplamaya başlamadan önce her bir ülkede ne kadar gözlem olduğunu kontrol edeceğiz. Herhangi bir ülkede çok az gözlem varsa, o ülkeyi listeden çıkarabiliriz.
mark_final["Country"].value_counts()
SP 1092 SA 335 CA 266 AUS 147 IND 146 GER 116 US 107 ME 3 Name: Country, dtype: int64
- Pandas’ın value_counts() fonksiyonunu kullanarak ülkeleri gözlem sayısına göre grupladık.
- Ülkelere göre gözlem sayısına baktığımız zaman Meksika olabileceğini düşündüğüm ME kodlu ülkede 3 tane gözlem bulunuyor. Gözlem sayısı çok az olduğu için ME’yi tablodan çıkaracağım.
mark_final_coun = mark_final[mark_final["Country"] != "ME"]
Ülke değişkenindeki “ME” olmayan kayıtları seçerek mark_final_coun değişkenine atadık. Bir pivot tablo yardımı ile ülke başına ortalama çocuk miktarı ve meyve tüketimini hesaplayalım.
coun = pd.pivot_table(data = mark_final_coun,\
index = "Country",\
values = ["Kidhome", "MntFruits"]).reset_index()
Country Kidhome MntFruits 0 AUS 0.496599 25.095238 1 CA 0.421053 28.875940 2 GER 0.379310 25.689655 3 IND 0.520548 25.904110 4 SA 0.486567 26.635821 5 SP 0.426740 25.772894 6 US 0.401869 28.355140
- Pandas’ın pivot_table() fonksiyonunu kullanarak pivot tablo oluşturduk.
- Pivot tabloyu ülkeye göre gruplamak için index parametresine ülke değişkenini, gözlemleri oluşturmak için ise values parametresine evdeki çocuk sayısı ve meyve tüketim miktarını girdik.
- Verileri hangi işleme göre gruplanacağını belirtmediğimiz için varsayılan olarak her iki değişkenin de ortalaması alındı.
- Pivot tabloyu hızlıca görselleştirebileceğimiz bir dataframe (tablo) olarak kaydetmek için ise reset_index() fonksiyonunu kullandık.
4. Adım: Saçılım grafiğini oluştur.
Artık grafiği oluşturmaya başlayabiliriz. Öncelikle saçılım grafiğini oluşturacağız.
plt.figure(figsize=(12,8))
sns.scatterplot(data = coun, x = "Kidhome", y = "MntFruits")
plt.title("Ülke Başına Ortalama Çocuk Sayısı vs. Meyve Tüketimi")
plt.xlabel("Evdeki Ortalama Çocuk Sayısı")
plt.ylabel("Ortalama Meyve Tüketimi")
for i in range(coun.shape[0]):
plt.text(coun["Kidhome"][i], coun["MntFruits"][i] + 0.05, coun["Country"][i], alpha=0.8)
plt.show()

- İlk satırda Matplotlib kütüphanesinden faydalanarak grafiğimiz için bir çerçeve (figure) çizdik ve figsize parametresi ile de bu çerçevenin enini ve boyunu inç cinsinden belirledik.
- Seaborn’un scatterplot fonksiyonu ile saçılım grafiğini çizdirdik. Scatterplot parametre olarak:
- data: Veri seti
- x: yatay eksende yer alacak değişken
- y: dikey eksende yer alacak değişken
- Sonrasında Matplotlib’in diğer yapılarını kullanarak grafiğimize başlık (title), dikey (ylabel) ve yatay (xlabel) eğriler için özel isim belirledik.
- Her bir gözlem noktasının yanına ülke adını yazmak (annotation) için bir for döngüsü kullandık. Bu döngü tablonun uzunluğu kadar tekrar edip, text() fonksiyonu yardımı ile x, y koordinatlarına ülke adını ekledi.
- Okunabilirliği kolaylaştırmak adına ülke isimlerinin her bir gözlemin biraz üzerinde yer almasını istediğimiz için y koordinatına 0.05 birim daha ekledik.
5. Adım: Kıyas çizgilerini ekle.
Saçılım grafiğini dörtlü çeyrekler grafiğine çevirmek için grafiği dörde bölecek kıyas çizgilerine ihtiyacımız var. Kıyas çizgilerinden bahsederken bu çizgilerin farklı farklı değerler alabileceğinden bahsetmiştik.
plt.figure(figsize=(12,8))
#Saçılım Grafiği
sns.scatterplot(data = coun, x = "Kidhome", y = "MntFruits")
plt.title("Ülke Başına Ortalama Çocuk Sayısı vs. Meyve Tüketimi")
plt.xlabel("Evdeki Ortalama Çocuk Sayısı")
plt.ylabel("Ortalama Meyve Tüketimi")
#Ülke isimleri
for i in range(coun.shape[0]):
plt.text(coun["Kidhome"][i], coun["MntFruits"][i] + 0.05, coun["Country"][i], alpha=0.8)
#Kıyas çizgileri
plt.axvline(x = coun["Kidhome"].mean(), color='k',linestyle='--', linewidth=1)
plt.axhline(y = coun["MntFruits"].mean(), color='k', linestyle='--', linewidth=1)
plt.show()

- Tabloya kıyas çizgilerini eklemek için axvline ve axhline fonksiyonlarını kullandık:
- axvline: Dikey eksene çizgi eklemek için kullanılır.
- axhline: Yatay eksene çizgi eklemek için kullanılır.
- Kıyas çizgilerinin her iki değişken için de ortalama değerden geçmesi gerektiğini belirttik.
- Her iki fonksiyon da parametre olarak aşağıdaki değerleri kullanır:
- Çizginin geçeceği nokta (x veya y)
- Çizginin rengi (color)
- Çizginin stili (linestyle)
- Çizginin kalınlığı (linewidth)
Son olarak her bir çeyrek bölüm için çeyrekliği temsil eden bir ifade ekleyebiliriz:
plt.figure(figsize=(12,8))
#Saçılım Grafiği
sns.scatterplot(data = coun, x = "Kidhome", y = "MntFruits")
plt.title("Ülke Başına Ortalama Çocuk Sayısı vs. Meyve Tüketimi")
plt.xlabel("Evdeki Ortalama Çocuk Sayısı")
plt.ylabel("Ortalama Meyve Tüketimi")
#Ülke isimleri
for i in range(coun.shape[0]):
plt.text(coun["Kidhome"][i], coun["MntFruits"][i] + 0.05, coun["Country"][i], alpha=0.8)
#Kıyas çizgileri
plt.axvline(x = coun["Kidhome"].mean(), color='k',linestyle='--', linewidth=1)
plt.axhline(y = coun["MntFruits"].mean(), color='k', linestyle='--', linewidth=1)
#Çeyreklik isimleri
plt.text(x = 0.467, y = 26.2, s = "Çok Çocuk, Az Meyve Tüketimi", fontsize = 12, color = "k", bbox=dict(facecolor = "red", alpha = 0.5))
plt.text(x = 0.39, y = 26.2, s="Az Çocuk, Az Meyve Tüketimi", fontsize = 12, color = "k", bbox=dict(facecolor = "red", alpha = 0.5))
plt.text(x = 0.465, y = 28, s = "Çok Çocuk, Fazla Meyve Tüketimi", fontsize =12, color = "k", bbox=dict(facecolor = "red", alpha = 0.5))
plt.text(x = 0.39, y = 28, s = "Az Çocuk, Fazla Meyve Tüketimi", fontsize =12, color = "k", bbox=dict(facecolor ="red", alpha = 0.5))
plt.show()

- text() fonksiyonunu kullanarak her bir çeyrekliğe isim ekledik.
- x: Metnin yatay eksendeki koordinatı
- y: Metnin dikey eksendeki koordinatı
- s: Metin
- fontsize: Metnin büyüklüğü
- color: Metnin rengi
- bbox: Metnin arka planına eklenecek dikdörtgen arka planı. bbox parametresi de ek olarak aşağıdaki parametreleri alır:
- facecolor: Arka plan rengi
- alpha: Arka planın saydamlığı/görünürlüğü
- text() fonksiyonu çok sayıda parametre ile görsel zenginlik ve esneklik sağlar. Bu fonksiyonun alabileceği parametreleri ve değerleri buradaki linkten inceleyebilirsiniz.
6. Adım: Çıktıları yorumla.
Grafikle beraber veri noktalarını dört farklı bölümde kategorize ettik. Peki bu grafikten ne çıkarabiliriz?
- Altta yer alan iki çeyreklikte bulunan ülkeler, meyve satışı düşük olduğu için şirketin pek tercih etmeyeceği ülkelerdir.
- Özellikle, sağ altta yer alan Hindistan ve Avustralya çocuk sayısı görece fazla olmasına rağmen meyve tüketimi düşüktür.
- Üst çeyrekliklerde yer alan ülkeler meyve tüketiminin fazla olduğu ülkelerdir. Şirket meyve satışı için pazarlama yapmak üzere bu ülkeleri tercih edebilir.
- Sol üstte yer alan Amerika ve Kanada için pazarlama yaparken:
- Çocuğu olmayan yetişkinler tercih edilebilir.
- Pazarlama görsellerinde çocuklar yerine yetişkinler kullanılabilir.
- Sağ üstte yer alan Suudi Arabistan için de çocukları içeren bir iletişim ve hedefleme kullanılabilir.
Sonraki adımlar
Seaborn ve Matplotlib’in farklı fonksiyon ve parametreleri kullanılarak grafiğin renkleri, arka planı ve fontları değiştirilebilir ve verilecek mesaj keskinleştirilebilir.
Araştırma yaparken keşfettiğim ve şahsen beğendiğim dörtlü çeyrekler grafiklerini ilham olması açısından aşağıda paylaşıyorum:

Pitching in the Majors: Wins = Skill + Luck

Cost per Acquisition (CAC) vs Customer Lifetime Value (CLV) per campaign

How does Discounting Impact Sales by Customer?
Dörtlü çeyrekler grafiği doğru kullanıldığı zaman etkili mesajlar verebilecek, teknik olmayan kişiler tarafından da kolaylıkla anlaşılabilecek önemli bir grafik türüdür.
Kaynakça:
Matplotlib 3.5.1 documentation
A Data Visualization Duel: Scattergraph vs. Quadrant
How to Use Scatterplot Quadrant Analysis with Your Web Analytics Data