여기의 다른 답변 s
은 마커의 영역 을 나타내는 것으로 주장하기 때문에 이것이 반드시 그런 것은 아니라는 것을 분명히하기 위해이 답변을 추가하고 있습니다.
포인트 크기 ^ 2
의 인수 s
는을 plt.scatter
나타냅니다 markersize**2
. 문서가 말했듯이
s
: 스칼라 또는 array_like, 모양 (n,), 선택적
크기는 포인트 ^ 2입니다. 기본값은 rcParams [ 'lines.markersize'] ** 2입니다.
이것은 문자 그대로 취할 수 있습니다. x 포인트가 큰 마커를 얻으려면 해당 숫자를 제곱하여 s
인수에 제공해야합니다 .
따라서 선 그림의 마커 크기와 산란 크기 인수의 관계는 제곱입니다. 크기가 10 포인트 인 플롯 마커와 동일한 크기의 산점 마커를 생성하려면을 호출 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()
"지역"에 연결
그렇다면 왜 다른 답변과 문서조차도 s
매개 변수 와 관련하여 "영역"에 대해 말하는가 ?
물론 포인트 단위 ** 2는 영역 단위입니다.
- 정사각형 마커의 특수한 경우, 마커
marker="s"
의 영역은 실제로 s
매개 변수 의 값입니다 .
- 원의 경우 원의 넓이는
area = pi/4*s
입니다.
- 다른 마커의 경우 마커 영역과 명확한 관계가 없을 수도 있습니다.
그러나 모든 경우에 마커의 면적은 s
파라미터에 비례합니다 . 이것은 대부분의 경우 실제로는 아니지만 "지역"이라고 부르는 동기입니다.
마커의 면적에 비례하는 일부 양으로 산란 마커의 크기를 지정하는 것은 측면 길이 또는 직경이 아닌 다른 패치를 비교할 때 인식되는 마커의 면적과 같은 의미가있다. 즉, 기본 수량을 두 배로 늘리면 마커 면적이 두 배가됩니다.
포인트 란?
지금까지 산란 마커의 크기가 의미하는 바에 대한 대답은 포인트 단위로 제공됩니다. 포인트는 종종 글꼴이 포인트로 지정되는 타이포그래피에서 사용됩니다. 또한 선폭은 종종 포인트로 지정됩니다. matplotlib의 표준 포인트 크기는 인치당 72 포인트 (ppi)입니다. 따라서 1 포인트는 1/72 인치입니다.
포인트 대신 픽셀 단위로 크기를 지정할 수 있으면 유용 할 수 있습니다. 그림 dpi도 72이면 한 점은 한 픽셀입니다. 그림 dpi가 다른 경우 (matplotlib 기본값은 fig.dpi=100
)
1 point == fig.dpi/72. pixels
스 캐터 마커의 포인트 크기는 그림 dpi에 따라 다르게 보일 수 있지만 10 x 10 픽셀 ^ 2 마커를 생성 할 수 있습니다.이 마커는 항상 같은 수의 픽셀을가집니다.
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()
데이터 단위의 분산에 관심이 있다면 이 답변을 확인 하십시오 .