Buradaki diğer cevaplar s
, işaretçinin alanını ifade ettiğini iddia ettiğinden , bu cevabı mutlaka böyle olmadığını açıklığa kavuşturmak için ekliyorum.
Puan boyutu ^ 2
Bağımsız değişken s
olarak plt.scatter
belirtmektedir markersize**2
. Belgelerin dediği gibi
s
: skaler veya array_like, şekil (n,),
nokta ^ 2 olarak isteğe bağlı boyut. Varsayılan rcParams ['lines.markersize'] ** 2'dir.
Bu tam anlamıyla alınabilir. X punto büyüklüğünde bir işaretleyici elde etmek için, o sayının karesini almanız ve s
argümana vermeniz gerekir .
Dolayısıyla, bir çizgi grafiğinin işaret boyutu ile dağılım boyutu argümanı arasındaki ilişki karedir. Bu nedenle, 10 puntoluk bir arsa işaretçisi ile aynı boyutta bir saçılma işareti üretmek için çağırırsınız scatter( .., s=100)
.
import matplotlib.pyplot as plt
fig,ax = plt.subplots()
ax.plot([0],[0], marker="o", markersize=10)
ax.plot([0.07,0.93],[0,0], linewidth=10)
ax.scatter([1],[0], s=100)
ax.plot([0],[1], marker="o", markersize=22)
ax.plot([0.14,0.86],[1,1], linewidth=22)
ax.scatter([1],[1], s=22**2)
plt.show()
"Alan" a bağlantı
Öyleyse neden s
parametre söz konusu olduğunda diğer cevaplar ve hatta belgeler "alan" hakkında konuşuyor ?
Tabii ki ** 2 noktalarının birimleri alan birimleridir.
- Kare işaretleyicinin özel durumu için, işaretleyicinin
marker="s"
alanı gerçekten de s
parametrenin değeridir .
- Bir daire için, dairenin alanı
area = pi/4*s
.
- Diğer işaretçiler için, işaretleyicinin alanı ile açık bir ilişki bile olmayabilir.
Ancak her durumda, işaretleyicinin alanı s
parametreyle orantılıdır . Çoğu durumda gerçekten olmasa da, buna "alan" deme motivasyonudur.
Dağıtıcı işaretleyicilerin büyüklüğünü, işaretleyicinin alanı ile orantılı olan bir miktar cinsinden belirtmek, işaretleyicinin yan uzunluğu veya çapı yerine farklı yamaları karşılaştırırken algılanan alan olduğu kadar mantıklıdır. Altta yatan miktarı iki katına çıkarmak işaretleyicinin alanını iki katına çıkarmalıdır.
Puan nedir?
Şimdiye kadar, bir dağılım işaretleyicisinin boyutunun ne anlama geldiğinin cevabı puan birimleriyle verilmiştir. Noktalar genellikle yazı tiplerinin noktalarda belirtildiği tipografide kullanılır. Ayrıca çizgi genişlikleri genellikle noktalarda belirtilir. Matplotlib'deki noktaların standart boyutu inç başına 72 puntodur (ppi) - 1 nokta dolayısıyla 1/72 inçtir.
Boyutları nokta yerine piksel cinsinden belirtmek yararlı olabilir. Şekil dpi de 72 ise, bir nokta bir pikseldir. Şekil dpi farklıysa (matplotlib varsayılanı fig.dpi=100
),
1 point == fig.dpi/72. pixels
Dağılım işaretçisinin noktalardaki boyutu farklı şekil dpi'leri için farklı görünmekle birlikte, her zaman aynı sayıda piksel içerecek şekilde 10 x 10 piksel ^ 2 işaretleyici üretilebilir:
import matplotlib.pyplot as plt
for dpi in [72,100,144]:
fig,ax = plt.subplots(figsize=(1.5,2), dpi=dpi)
ax.set_title("fig.dpi={}".format(dpi))
ax.set_ylim(-3,3)
ax.set_xlim(-2,2)
ax.scatter([0],[1], s=10**2,
marker="s", linewidth=0, label="100 points^2")
ax.scatter([1],[1], s=(10*72./fig.dpi)**2,
marker="s", linewidth=0, label="100 pixels^2")
ax.legend(loc=8,framealpha=1, fontsize=8)
fig.savefig("fig{}.png".format(dpi), bbox_inches="tight")
plt.show()
Veri birimlerinde dağılma ile ilgileniyorsanız, bu yanıtı kontrol edin .