, 당신이 그것을 구축 할 수 있습니다하기 matplotlib의 latext 버전 WTH 아나콘다의 최신 버전을 사용하고, 도움이된다면 그것들에 기초해서. 예를 들면 : 당신이 어떤 특히 복잡한 칼라 맵의 상단 절반이 원하는 형태 않은 경우
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
cmap = LinearSegmentedColormap.from_list('name', ['green', 'yellow', 'red'])
# Generate some data similar to yours
y, x = np.mgrid[-200:1900, -300:2000]
z = np.cos(np.hypot(x, y)/100) + 1
fig, ax = plt.subplots()
cax = ax.contourf(x, y, z, cmap=cmap)
cbar = fig.colorbar(cax)
cbar.set_label('Z-Values')
plt.show()
그러나
는, 당신은 범위 당신 '을 통해 컬러 맵을 평가하여 그 일부를 복사 할 수 있습니다 . 당신이 "최고"의 절반을 원하는 경우에 관심이 다시 예를 들어, 0.5 1에서 평가할 것 :
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
# Evaluate an existing colormap from 0.5 (midpoint) to 1 (upper end)
cmap = plt.get_cmap('gist_earth')
colors = cmap(np.linspace(0.5, 1, cmap.N // 2))
# Create a new colormap from those colors
cmap2 = LinearSegmentedColormap.from_list('Upper Half', colors)
y, x = np.mgrid[-200:1900, -300:2000]
z = np.cos(np.hypot(x, y)/100) + 1
fig, axes = plt.subplots(ncols=2)
for ax, cmap in zip(axes.flat, [cmap, cmap2]):
cax = ax.imshow(z, cmap=cmap, origin='lower',
extent=[x.min(), x.max(), y.min(), y.max()])
cbar = fig.colorbar(cax, ax=ax, orientation='horizontal')
cbar.set_label(cmap.name)
plt.show()
대단히 감사합니다. 마지막 질문 하나. 내장 된 색상 맵과 같이 장면 전환을보다 연속적으로 만드는 방법은 무엇입니까? 이것들은 좋지만 전환은 매우 갑작 스럽습니다. –
@RobertHembree - 내가 잘못 이해하지 않는 한'imshow' (연속적 임) 대신'contourf' (레벨 개수 설정)를 사용하기 때문에 갑자기 나타납니다. 아니면 당신이 묻는 것을 오해하고 있습니까? –
당신이 제안한대로 imshow를 사용하면 내 문제가 해결 된 것 같습니다. 나는이 모든 것을 문서에서 꺼내려고했다. 고맙습니다. 그것은 모두 완벽하게 작동합니다. –