[PYTHON] matplotlib에서 밀도로 채색 된 분산 형 플롯을 만들려면 어떻게해야합니까?
PYTHONmatplotlib에서 밀도로 채색 된 분산 형 플롯을 만들려면 어떻게해야합니까?
나는 각 점이 가까운 점의 공간 밀도에 의해 착색되는 산점도를 만들고 싶습니다.
나는 R을 사용하는 예제를 보여주는 매우 비슷한 질문을 발견했다.
R Scatter Plot : 심볼 색상은 겹치는 점의 수를 나타냅니다.
matplotlib를 사용하여 파이썬에서 비슷한 것을 달성하는 가장 좋은 방법은 무엇입니까?
해결법
-
==============================
1.@askewchan이 제안한 hist2d 나 hexbin 외에, 링크 된 질문에서 받아 들인 대답이 사용하는 것과 같은 방법을 사용할 수 있습니다.
@askewchan이 제안한 hist2d 나 hexbin 외에, 링크 된 질문에서 받아 들인 대답이 사용하는 것과 같은 방법을 사용할 수 있습니다.
그렇게하고 싶다면 :
import numpy as np import matplotlib.pyplot as plt from scipy.stats import gaussian_kde # Generate fake data x = np.random.normal(size=1000) y = x * 3 + np.random.normal(size=1000) # Calculate the point density xy = np.vstack([x,y]) z = gaussian_kde(xy)(xy) fig, ax = plt.subplots() ax.scatter(x, y, c=z, s=100, edgecolor='') plt.show()
포인트가 밀도 순서대로 플롯되어 가장 밀도가 높은 점이 항상 위에 놓 이도록하려면 (링크 된 예제와 유사하게) z 값으로 정렬하면됩니다. 조금 더 잘 보이기 때문에 작은 마커 크기를 사용하려고합니다.
import numpy as np import matplotlib.pyplot as plt from scipy.stats import gaussian_kde # Generate fake data x = np.random.normal(size=1000) y = x * 3 + np.random.normal(size=1000) # Calculate the point density xy = np.vstack([x,y]) z = gaussian_kde(xy)(xy) # Sort the points by density, so that the densest points are plotted last idx = z.argsort() x, y, z = x[idx], y[idx], z[idx] fig, ax = plt.subplots() ax.scatter(x, y, c=z, s=50, edgecolor='') plt.show()
-
==============================
2.히스토그램을 만들 수 있습니다.
히스토그램을 만들 수 있습니다.
import numpy as np import matplotlib.pyplot as plt # fake data: a = np.random.normal(size=1000) b = a*3 + np.random.normal(size=1000) plt.hist2d(a, b, (50, 50), cmap=plt.cm.jet) plt.colorbar()
from https://stackoverflow.com/questions/20105364/how-can-i-make-a-scatter-plot-colored-by-density-in-matplotlib by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 정수 타임 스탬프를 Python datetime으로 변환하는 방법 (0) | 2018.10.03 |
---|---|
[PYTHON] 범위 (시작, 끝)에 끝이 포함되지 않는 이유는 무엇입니까? (0) | 2018.10.03 |
[PYTHON] 장고 모델로 csv 데이터를 가져 오는 방법 (0) | 2018.10.03 |
[PYTHON] 두 세그먼트가 교차하는지 어떻게 확인할 수 있습니까? (0) | 2018.10.03 |
[PYTHON] 파이썬 함수를 피클 링하는 쉬운 방법이 있습니까? 아니면 코드를 직렬화할까요? (0) | 2018.10.03 |