Matplotlib: bir dağılım grafiğini değere göre renklendirme


Genellikle üçüncü bir değişkene dayalı olarak matplotlib dağılım grafiğindeki noktaların rengini gölgelendirmek isteyebilirsiniz. Neyse ki, aşağıdaki sözdizimini alan matplotlib.pyplot.scatter() işlevini kullanarak bunu yapmak kolaydır:

matplotlib.pyplot.scatter(x, y, s=Yok, c=Yok, cmap=Yok)

Altın:

  • x: Grafikteki x ekseninin konumları için kullanılacak değerler tablosu.
  • y: çizimdeki y ekseni konumları için kullanılacak değerler dizisi.
  • s: işaretleyicinin boyutu.
  • c: Markör renkleri için kullanılacak değerler tablosu.
  • cmap: Çizimde kullanılacak bir renk haritası.

Renk değerleri için kullanılacak bir değişkeni belirtmek için c’yi kullanabilir ve nokta bulutundaki işaretleyiciler için kullanılacak gerçek renkleri belirtmek için cmap’i kullanabilirsiniz.

Bu eğitimde bu işlevin pratik kullanımına ilişkin çeşitli örnekler açıklanmaktadır.

Örnek 1: Değere Göre Renkli Dağılım Noktaları

Aşağıdaki pandalara sahip olduğumuzu varsayalım DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': [3, 4, 4, 5, 7, 8, 8, 9]})

#view DataFrame
df

        X Y Z
0 25 5 3
1 12 7 4
2 15 7 4
3 14 9 5
4 19 12 7
5 23 9 8
6 25 9 8
7 29 4 9

Aşağıdaki kod, gri renk paleti kullanarak ve z değişkeninin değerlerini renk paletinin gölgesi olarak kullanarak nokta bulutunun nasıl oluşturulacağını gösterir:

 import matplotlib.pyplot as plt

#create scatterplot
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' gray ')

Değere göre Matplotlib dağılım grafiği rengi

Bu özel örnek için “gri” renk paletini seçiyoruz, ancak kullanılacak mevcut renk paletlerinin tam listesini matplotlib renk paletleri belgelerinde bulabilirsiniz.

Örneğin, bunun yerine renk paleti olarak “Yeşiller”i belirtebiliriz:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens ') 

cmap ile Matplotlib dağılım grafiği

Varsayılan olarak, c argümanı için daha büyük değerlere sahip işaretleyiciler daha koyu gölgelidir, ancak cmap ismine basitçe _r ekleyerek bu eğilimi tersine çevirebilirsiniz:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens_r ') 

Matplotlib renk paleti ters ölçek

Örnek 2: Kategoriye Göre Renkli Dağılım Noktaları

Aşağıdaki pandalara sahip olduğumuzu varsayalım DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']})

#view DataFrame
df

	X Y Z
0 25 5 A
1 12 7 A
2 15 7 B
3 14 9 B
4 19 12 B
5 23 9 C
6 25 9 C
7 29 4 C

Aşağıdaki kod, işaretçileri kategoriye göre renklendirmek için z değişkenini kullanarak bir dağılım grafiğinin nasıl oluşturulacağını gösterir:

 import matplotlib.pyplot as plt

groups = df. groupby ('z')
for name, group in groups:
    plt. plot (group.x, group.y, marker=' o ', linestyle='', markersize=12, label=name)

plt. legend ()

Kategoriye göre renklendirilmiş Matplotlib dağılım grafiği

Daha fazla Python eğitimini burada bulabilirsiniz.

Yorum ekle

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