Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Fungsi `pyplot.scatter()` Matplotlib Menggunakan Parameter `s` untuk Mengawal Saiz Penanda?

Bagaimanakah Fungsi `pyplot.scatter()` Matplotlib Menggunakan Parameter `s` untuk Mengawal Saiz Penanda?

Linda Hamilton
Lepaskan: 2024-11-25 15:38:12
asal
309 orang telah melayarinya

How Does Matplotlib's `pyplot.scatter()` Function Use the `s` Parameter to Control Marker Size?

Saiz Penanda Plot Taburan pyplot

Dalam fungsi matplotlib.pyplot.scatter(), parameter s menentukan saiz penanda. Saiz ini ditakrifkan dalam "titik^2," yang boleh menjadi unit ukuran yang mengelirukan untuk ditafsirkan.

Apakah itu "Titik"?

Satu "titik " dalam konteks ini ialah unit ukuran sewenang-wenang yang digunakan untuk menentukan saiz penanda. Ia tidak berkaitan secara langsung dengan saiz piksel pada paparan anda.

Bagaimana s Mempengaruhi Saiz Penanda?

Parameter s menentukan kawasan penanda. Ini bermakna:

  • Meningkatkan s dengan faktor 4 meningkatkan lebar dan tinggi penanda dengan faktor 2.
  • Menggandakan lebar penanda (atau mana-mana linear dimensi) memerlukan peningkatan s dengan faktor 4.
  • Menggandakan luas penanda memerlukan peningkatan s dengan a faktor 2.

Contoh

Mari kita buat plot serakan dengan saiz penanda yang berbeza:

import matplotlib.pyplot as plt

x = [0, 2, 4, 6, 8, 10]
y = [0] * len(x)
s = [20 * 4**n for n in range(len(x))]

plt.scatter(x, y, s=s)
plt.show()
Salin selepas log masuk

Dalam contoh ini, saiz penanda meningkat secara eksponen apabila kita bergerak dari kiri ke kanan. Setiap penanda mempunyai dua kali ganda luas penanda sebelumnya.

Memvisualisasikan Saiz Penanda

Untuk memvisualisasikan fungsi berbeza yang mempengaruhi saiz penanda, mari buat plot berikut:

import matplotlib.pyplot as plt

x = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
s_exp = [20 * 2**n for n in range(len(x))]
s_square = [20 * n**2 for n in range(len(x))]
s_linear = [20 * n for n in range(len(x))]

plt.scatter(x, [1] * len(x), s=s_exp, label='$s=2^n$', lw=1)
plt.scatter(x, [0] * len(x), s=s_square, label='$s=n^2$')
plt.scatter(x, [-1] * len(x), s=s_linear, label='$s=n$')
plt.ylim(-1.5, 1.5)
plt.legend(loc='center left', bbox_to_anchor=(1.1, 0.5), labelspacing=3)
plt.show()
Salin selepas log masuk

Plot ini menunjukkan cara saiz penanda muncul apabila diskalakan secara eksponen, kuadratik dan secara linear.

Atas ialah kandungan terperinci Bagaimanakah Fungsi `pyplot.scatter()` Matplotlib Menggunakan Parameter `s` untuk Mengawal Saiz Penanda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan