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
Linda Hamiltonasal
2024-11-25 15:38:12335semak imbas

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

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

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!

Kenyataan:
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