matplotlib
를 사용하고 있습니다.
plot ()
또는 bar ()
에서 레이블을 추가하면 범례를 쉽게 넣을 수 있습니다. 하지만 contourf ()
또는 imshow ()
이면
색상 범위를 나타낼 수있는 colorbar ()
가 있다는 것을 알고 있지만 만족스럽지 않습니다. 이름 (레이블)이있는 그런 전설을 원합니다.
내가 생각할 수있는 것은 매트릭스의 각 요소에 레이블을 추가 한 다음 legend ()를 시도하여 작동하는지 확인하지만 값과 같이 요소에 레이블을 추가하는 방법은 무엇입니까 ??
제 경우에는 원시 데이터는 다음과 같습니다.
1,2,3,3,4
2,3,4,4,5
1,1,1,2,2
예를 들어, 1은 '잔디', 2는 '모래', 3은 '언덕'을 나타냅니다. imshow ()는 내 경우에는 완벽하게 작동하지만 범례는 없습니다.
내 질문은 :
예를 들어 자동으로 범례를 추가 할 수있는 함수가 있습니까? 예를 들어 제 경우에는 다음과 같이하면됩니다. someFunction ( 'grass', 'sand', ...)
없는 경우 행렬의 각 값에 레이블을 어떻게 추가합니까? 예를 들어, 행렬 '잔디'의 모든 1에 레이블을 지정하고 행렬 'sand'의 모든 2에 레이블을 지정합니다.
감사합니다!
수정 :
@dnalow 덕분에 정말 똑똑합니다. 그러나 공식적인 해결책이 있는지 여전히 궁금합니다.
해결 방법
전설을 만들려면 선이 필요하기 때문에 전설을 속 여야한다고 생각합니다.
다음과 같이 할 수 있습니다.
import pylab as pl
mycmap = pl.cm.jet # for example
for entry in pl.unique(raw_data):
mycolor = mycmap(entry*255/(max(raw_data) - min(raw_data)))
pl.plot(0, 0, "-", c=mycolor, label=mynames[entry])
pl.imshow(raw_data)
pl.legend()
원인은 아직 그다지 만족스럽지 않습니다. 하지만 그 위에 무언가를 만들 수있을 것입니다.
[편집 : 누락 된 괄호 추가]
참조 페이지 https://stackoverflow.com/questions/25482876
'파이썬' 카테고리의 다른 글
파이썬 입력 인수의 형식 지정 argparse python (0) | 2020.12.10 |
---|---|
파이썬 판다에 대한 반복 값 업데이트 (0) | 2020.12.10 |
파이썬 Python을 사용하여 MySQL 데이터베이스에 INSERT 한 후 "id"를 어떻게 얻습니까? (0) | 2020.12.10 |
파이썬 csv 파일을 읽을 때 혼합 유형. 원인, 수정 및 결과 (0) | 2020.12.10 |
파이썬 Python3 : 요청 라이브러리없이 JSON POST 요청 (0) | 2020.12.10 |
댓글