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

Warna plot sebar Matplotlib berdasarkan nilai

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

Plot sebar Matplotlib dengan cmap

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

Skala terbalik palet warna Matplotlib

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

Plot sebar Matplotlib diwarnai berdasarkan kategori

Anda dapat menemukan lebih banyak tutorial Python di sini .

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *