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 ')
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 ')
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 ')
Ö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 ()
Daha fazla Python eğitimini burada bulabilirsiniz.