matplotlib을 사용하여 파이썬에서 일부 데이터를 플롯하기 위해 플롯에 표준 컬러 막대가 필요합니다. 데이터는 주파수 정보가 포함 된 일련의 NxM 행렬로 구성되어 간단한 imshow() 플롯에서 빈도를 설명하는 색상의 2D 막대 그래프를 제공합니다. 각 행렬은 서로 다르지만 중복되는 범위의 데이터를 포함합니다. Imshow는 각 행렬의 데이터를 0-1 범위로 정규화합니다. 즉, 행렬 A의 플롯은 행렬 2 * A의 플롯과 동일하게 나타납니다 (그러나 색상 막대는 값이 두 배로 표시됩니다). 제가 원했던 것은 예를 들어 빨강 색이 모든 플롯에서 동일한 빈도에 해당하는 것입니다. 다른 말로하면, 단일 플롯은 모든 플롯에서 충분합니다. 어떤 제안이라도 대단히 감사하겠습니다.파이썬에서 일련의 플롯에 대한 표준 컬러 막대를 만들려면 어떻게해야합니까?
34
A
답변
8
가장 쉬운 해결 방법은 각 플롯에 대해 동일한 인수를 사용하여 clim (lower_limit, upper_limit)을 호출하는 것입니다.
+4
또는'vmin' 및'vmax' kwargs를' imshow'. –
68
이 ianilis의 대답 @ 훔치는하지,하지만 난 예를 추가하고 싶었 ...
여러 가지 방법이 있지만, 가장 단순한는 imshow
에 vmin
및 vmax
kwargs로를 지정하는 것입니다. 또는 matplotlib.cm.Colormap
인스턴스를 만들고 지정할 수도 있지만 단순한 경우보다 복잡합니다.
여기에 모든 이미지에 대해 하나 년 Colorbar와 빠른 예제 :
import numpy as np
import matplotlib.pyplot as plt
# Generate some data that where each slice has a different range
# (The overall range is from 0 to 2)
data = np.random.random((4,10,10))
data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None]
# Plot each slice as an independent subplot
fig, axes = plt.subplots(nrows=2, ncols=2)
for dat, ax in zip(data, axes.flat):
# The vmin and vmax arguments specify the color limits
im = ax.imshow(dat, vmin=0, vmax=2)
# Make an axis for the colorbar on the right side
cax = fig.add_axes([0.9, 0.1, 0.03, 0.8])
fig.colorbar(im, cax=cax)
plt.show()
1
오히려이 유일한 해답의 질문의 절반, 또는 새로운 일을 시작합니다. 변경할 경우
data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None]
에
data *= np.array([2.0, 1.0, 1.5, 0.5])[:,None,None]
당신의 년 Colorbar 어두운 파란색 약간 밝은 파란색이 경우 어떤 0에서 0.5로 이동합니다 전체 범위를 커버하지 않습니다
(0 2까지) . 컬러 바는 vmin
및 vmax
에 관계없이 마지막 이미지 또는 윤곽선의 색상 만 표시합니다.
관련 문제
- 1. 파이썬에서 정규 표현식을 만들려면 어떻게해야합니까?
- 2. Ajax와 Perl에서 웹 진행률 막대를 만들려면 어떻게해야합니까?
- 3. 파이썬에서 와일드 카드로 검색어를 만들려면 어떻게해야합니까?
- 4. 파이썬에서 일련의 문자열 만들기
- 5. 파이썬에서 프로세스 간 데이터 구조를 만들려면 어떻게해야합니까?
- 6. 파이썬에서 alt + number 글로벌 단축키를 만들려면 어떻게해야합니까?
- 7. 파이썬에서 정수로 바이트 값을 만들려면 어떻게해야합니까?
- 8. gstreamer를 사용하여 일련의 이미지를 결합하여 비디오 슬라이드 쇼를 만들려면 어떻게해야합니까?
- 9. 왜 파이썬에서 컬러 출력이 없습니까?
- 10. 일련의 생성 된 이미지에서 Quicktime 동영상을 만들려면 어떻게해야합니까?
- 11. 단계별 진행 과정을 반영하는 jquery/css 진행 막대를 만들려면 어떻게해야합니까?
- 12. 스크롤 막대를 사용하지 않음 - 내 페이지를 더 짧게 만들려면 어떻게해야합니까?
- 13. PHP 및 JavaScript를 사용하여 진행률 막대를 만들려면 어떻게해야합니까?
- 14. Matplotlib의 플롯에 테이블을 배치하려면 어떻게해야합니까?
- 15. Sitecore에서 설문 조사를 만들려면 어떻게해야합니까?
- 16. .txt에서 .arff 파일을 만들려면 어떻게해야합니까?
- 17. 파이썬에서 고유 한 값 우선 순위 큐를 만들려면 어떻게해야합니까?
- 18. 소켓에서 'ostream'을 만들려면 어떻게해야합니까?
- 19. UIColor 및 표준 컬러 휠의 색조
- 20. specman에서 변수에 대한 참조를 만들려면 어떻게해야합니까?
- 21. ActiveResource 개체에 대한 ActiveRecord 관계를 만들려면 어떻게해야합니까?
- 22. VB.net에서 확장 메서드에 대한 DLL을 만들려면 어떻게해야합니까?
- 23. Eclipse에서 행 #에 대한 링크를 만들려면 어떻게해야합니까?
- 24. UIButton에 대한 동적 오버레이를 만들려면 어떻게해야합니까?
- 25. 이 데이터에 대한 모델/상점을 만들려면 어떻게해야합니까?
- 26. Javascript를 사용하여 iframe에 대한 폴백을 만들려면 어떻게해야합니까?
- 27. UITableViewCell에 대한 이미지를 동적으로 만들려면 어떻게해야합니까?
- 28. 접힌 아코디언에서 항목에 대한 링크를 만들려면 어떻게해야합니까?
- 29. 파이썬에서 빈 n * m PNG 파일을 만들려면 어떻게해야합니까?
- 30. 파이썬에서 정적 프레임 된 ASCII 인터페이스를 만들려면 어떻게해야합니까?
imshow()가 해석을 어렵게 표시 할 때 행렬을 부드럽게 만들기 때문에 matshow() 또는 pcolor()를 사용하는 것을 선호합니다. 행렬이 실제로 이미지가 아니라면 다른 두 가지를 시도해 보는 것이 좋습니다. – ianalis
@inalis - 보간을 원하지 않으면'imshow'를 사용할 때'interpolation = 'nearest'를 지정할 수 있습니다. 'pcolor'는 큰 배열의 경우'imshow'보다 훨씬 느립니다. 그래서 큰 배열 배열을 위해'imshow'를 사용하는 것이 더 좋습니다. 반면에,'pcolor'는 벡터 출력을 주는데, 이것은 때때로 매우 편리 할 수 있습니다. –
[Matplotlib 2 Subplots, 1 Colorbar]의 가능한 복제물 (http://stackoverflow.com/questions/13784201/matplotlib-2-subplots-1-colorbar) –