Python의 산점도 및 색상 매핑
점 x와 y의 범위가 numpy 배열에 저장되어 있습니다. x (t)와 y (t)를 나타냅니다. 여기서 t = 0 ... T-1
다음을 사용하여 산점도를 플로팅하고 있습니다.
import matplotlib.pyplot as plt
plt.scatter(x,y)
plt.show()
시간을 나타내는 컬러 맵을 갖고 싶습니다 (그러므로 numpy 배열의 인덱스에 따라 포인트를 채색합니다)
그렇게하는 가장 쉬운 방법은 무엇입니까?
다음은 예입니다.
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
t = np.arange(100)
plt.scatter(x, y, c=t)
plt.show()
여기에서 인덱스에 따라 색상 설정하고 t
단지 배열입니다 [1, 2, ..., 100]
.
이해하기 쉬운 예는 약간 더 간단합니다.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
plt.scatter(x, y, c=t)
plt.show()
전달하는 배열 c
은 특정 순서 나 유형을 가질 필요가 없습니다. 즉,이 예제 에서처럼 정렬하거나 정수일 필요가 없습니다. 플로팅 루틴은 최소 / 최대 값 c
이 컬러 맵의 맨 아래 / 위에 해당하도록 컬러 맵을 조정합니다.
컬러 맵
다음을 추가하여 컬러 맵을 변경할 수 있습니다.
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
matplotlib.cm
컬러 맵도 호출 할 수 있으므로 가져 오기 는 선택 사항 cmap="cmap_name"
입니다. 각각의 모습을 보여주는 컬러 맵 의 참조 페이지 가 있습니다. 컬러 맵을 간단히 cmap_name_r
. 그래서
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
# or
plt.scatter(x, y, c=t, cmap="cmap_name_r")
작동합니다. 예는 "jet_r"
또는 cm.plasma_r
입니다. 다음은 새로운 1.5 컬러 맵 viridis의 예입니다.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(x, y, c=t, cmap='viridis')
ax2.scatter(x, y, c=t, cmap='viridis_r')
plt.show()
컬러 바
다음을 사용하여 컬러 바를 추가 할 수 있습니다.
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()
Figure와 서브 플롯을 명시 적으로 (예 : fig, ax = plt.subplots()
또는 ax = fig.add_subplot(111)
) 사용하는 경우 컬러 바를 추가하는 것이 약간 더 복잡 할 수 있습니다. 좋은 예를 찾을 수 있습니다 여기에 하나의 부가 적 줄거리의 년 Colorbar에 대한 및 2 줄거리 1 년 Colorbar 여기 .
위의 wflynny의 답변에 추가하려면 여기 에서 사용 가능한 컬러 맵을 찾을 수 있습니다.
예:
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.jet)
또는 대안으로
plt.scatter(x, y, c=t, cmap='jet')
참고 URL : https://stackoverflow.com/questions/17682216/scatter-plot-and-color-mapping-in-python
'your programing' 카테고리의 다른 글
git로 비 저장소 파일을 제거 하시겠습니까? (0) | 2020.10.16 |
---|---|
C ++에서 void 포인터는 무엇입니까? (0) | 2020.10.16 |
Django 및 python-social-auth가 OAuth2로 Google에 연결하는 경우 HTTPError 403 (금지됨) (0) | 2020.10.16 |
Ruby on Rails 웹 애플리케이션에서 차트를 생성하는 데 선호하는 방법은 무엇입니까? (0) | 2020.10.16 |
원시 Python 문자열에 따옴표를 포함하는 방법 (0) | 2020.10.16 |