값에 matplotlib.cm
의 객체를 호출하여 스칼라 값을 색상 맵에 매핑 할 수 있습니다. 값은 (I 무작위로 생성 할 수 있습니다하는) 일부 카이 제곱 분포 데이터 RBGA 값을 얻기 위해, 그래서 0과 1 사이에 놓여 야, 내가 할 것 :
chisq = np.random.chisquare(4, 8)
chisq -= chisq.min()
chisq /= chisq.max()
errorbar_colors = cm.winter(chisq)
을 대신 컬러 스케일의 시작을 필요로하고 최소 및 최대 실제 값에서 끝나면 최소값에서 빼고 원하는 최대 값으로 나눌 수 있습니다.
array([[ 0. , 0.7372549 , 0.63137255, 1. ],
[ 0. , 0.7372549 , 0.63137255, 1. ],
[ 0. , 0.4745098 , 0.7627451 , 1. ],
[ 0. , 1. , 0.5 , 1. ],
[ 0. , 0.36078431, 0.81960784, 1. ],
[ 0. , 0.47843137, 0.76078431, 1. ],
[ 0. , 0. , 1. , 1. ],
[ 0. , 0.48627451, 0.75686275, 1. ]])
이 플롯하려면 그냥 색상과 데이터 포인트를 반복하고 errorbars 그릴 수 있습니다 :
heights = np.random.randn(8)
sem = .4
for i, (height, color) in enumerate(zip(heights, errorbar_colors)):
plt.plot([i, i], [height - sem, height + sem], c=color, lw=3)
plt.plot(heights, marker="o", ms=12, color=".3")
을
지금 errorbar_colors
는 winter
컬러 맵에서 RGBA 값의 (8, 4)
배열이됩니다
그러나 내장 matplotlib 색상 표는 모두 th입니다. 이 작업에 적합합니다. 일부 향상을 위해, 당신은 컬러 라인에 사용할 수있는 순차적 인 컬러 팔레트 생성 시본 사용할 수 있습니다 심지어 여기
import numpy as np
import seaborn
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
chisq = np.random.chisquare(4, 8)
chisq -= chisq.min()
chisq /= chisq.max()
cmap = ListedColormap(seaborn.color_palette("GnBu_d"))
errorbar_colors = cmap(chisq)
heights = np.random.randn(8)
sem = .4
for i, (height, color) in enumerate(zip(heights, errorbar_colors)):
plt.plot([i, i], [height - sem, height + sem], c=color, lw=3)
plt.plot(heights, marker="o", ms=12, color=".3")
하지만를, 나는 이것이 가장 좋은 방법이 될 것입니다 것을 의심이 너의 요점을 알기 위해서. 나는 당신의 데이터가 어떻게 생겼는지 정확히 모르겠다.하지만 여기서는 플로팅 할 종속 변수를 가진 두 개의 플롯을 만들고, 종속 변수로 카이 제곱 통계를 사용하여 두 번째 플롯을 만들 것을 권할 것이다. 또는 오류 막대의 크기와 카이 제곱 값 사이의 관계에 관심이있는 경우 산점도로 직접 플롯합니다.
우수한 응답! 게시물 주셔서 감사합니다. 나는 이것을하기위한 또 다른 방법을 생각해 내고 말았다. – astromax