Matplotlib: cara mewarnai plot sebar berdasarkan nilai
Seringkali Anda mungkin ingin membuat bayangan warna titik dalam sebar matplotlib berdasarkan variabel ketiga. Untungnya, hal ini mudah dilakukan menggunakan fungsi matplotlib.pyplot.scatter() , yang menggunakan sintaks berikut:
matplotlib.pyplot.scatter(x, y, s=Tidak Ada, c=Tidak Ada, cmap=Tidak Ada)
Emas:
- x: Tabel nilai yang digunakan untuk posisi sumbu x pada plot.
- y: array nilai yang akan digunakan untuk posisi sumbu y di plot.
- s: ukuran penanda.
- c: Tabel nilai yang digunakan untuk warna penanda.
- cmap: Peta warna untuk digunakan dalam pembuatan plot.
Anda dapat menggunakan c untuk menentukan variabel yang akan digunakan untuk nilai warna dan Anda dapat menggunakan cmap untuk menentukan warna sebenarnya yang akan digunakan untuk penanda di point cloud.
Tutorial ini menjelaskan beberapa contoh penggunaan praktis fungsi ini.
Contoh 1: Poin Scatterplot Berwarna berdasarkan Nilai
Misalkan kita memiliki panda DataFrame berikut:
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
Kode berikut menunjukkan cara membuat point cloud menggunakan palet warna abu-abu dan menggunakan nilai variabel z sebagai bayangan palet warna:
import matplotlib.pyplot as plt #create scatterplot plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' gray ')
Untuk contoh khusus ini, kami memilih palet warna “abu-abu”, tetapi Anda dapat menemukan daftar lengkap palet warna yang tersedia untuk digunakan dalam dokumentasi palet warna matplotlib .
Misalnya, kita bisa menentukan “Hijau” sebagai palet warna:
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens ')
Secara default, penanda dengan nilai lebih besar untuk argumen c diberi warna lebih gelap, namun Anda dapat membalikkan tren ini hanya dengan menambahkan _r ke nama cmap:
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens_r ')
Contoh 2: Titik Scatterplot Berwarna berdasarkan Kategori
Misalkan kita memiliki panda DataFrame berikut:
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
Kode berikut menunjukkan cara membuat scatterplot menggunakan variabel z untuk mewarnai marker berdasarkan kategori:
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 ()
Anda dapat menemukan lebih banyak tutorial Python di sini .