[PYTHON] 파이썬의 분산 형 플롯 및 색상 매핑
PYTHON파이썬의 분산 형 플롯 및 색상 매핑
난 점들 x와 y가 numpy 배열에 저장되어있다. 이들은 x (t)와 y (t)를 나타내며, 여기서 t = 0 ... T-1
나는 산점도를 사용하여 음모를 꾸미고있다.
import matplotlib.pyplot as plt
plt.scatter(x,y)
plt.show()
시간을 나타내는 색상 맵을 원합니다 (따라서 numpy 배열의 인덱스에 따라 점을 채색합니다).
가장 쉬운 방법은 무엇입니까?
해결법
-
==============================
1.여기에 예제가있다.
여기에 예제가있다.
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()
여기서 당신은 [1, 2, ..., 100]의 배열 인 인덱스 t를 기반으로 색상을 설정합니다.
아마도 이해하기 쉬운 예제는 약간 더 간단 할 것입니다.
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)
매트랩을 cmap = "cmap_name"으로 호출 할 수 있으므로 matplotlib.cm을 가져 오는 것은 선택 사항입니다. 각각의 모습을 보여주는 색상 맵의 참조 페이지가 있습니다. 또한 단순히 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()
숫자와 하위 그림을 명시 적으로 사용하는 경우 (예 : fig, ax = plt.subplots () 또는 ax = fig.add_subplot (111)), 색상 막대를 추가하는 것은 좀 더 복잡 할 수 있습니다. 좋은 예는 여기에서 하나의 서브 플롯 컬러 바를 찾고 여기에서 2 개의 서브 플롯은 하나의 컬러 바를 찾습니다.
-
==============================
2.위의 wflynny의 답변에 추가하려면 여기에서 사용 가능한 색상 맵을 찾으십시오.
위의 wflynny의 답변에 추가하려면 여기에서 사용 가능한 색상 맵을 찾으십시오.
예:
import matplotlib.cm as cm plt.scatter(x, y, c=t, cmap=cm.jet)
또는 대안 적으로,
plt.scatter(x, y, c=t, cmap='jet')
from https://stackoverflow.com/questions/17682216/scatter-plot-and-color-mapping-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] stdin에서 암호 읽기 (0) | 2018.10.10 |
---|---|
[PYTHON] 문자열이 목록의 문자열 중 하나로 끝나는 지 확인하십시오. (0) | 2018.10.10 |
[PYTHON] 별도의 팬더 데이터 프레임을 서브 그림으로 플로팅하려면 어떻게해야합니까? (0) | 2018.10.10 |
[PYTHON] __file__ 변수는 무엇을 의미합니까 /할까요? (0) | 2018.10.10 |
[PYTHON] matplotlib을 사용하여 여러 서브 플로트에 대해 하나의 범례를 만드는 방법은 무엇입니까? (0) | 2018.10.10 |