我有许多散点图,我可以用图表的颜色来表示变量之间的相关性。相关性归一化为[0,1],我希望蓝色为0到红色为1,但我可以使用其他组合。
将我的相关数字转换为matplotlib放在色谱上的代码是什么?
for col_s in s_data.columns[1:3]:
for col_e in economic_data.columns[1:3]:
x= s_data[col_s].interpolate(method='nearest').tolist()
y= economic_data[col_e].interpolate(method='nearest').tolist()
corr=np.corrcoef(x,y)[0,1]
plt.scatter(x, y, alpha=0.5, c=to_rgb(corr))
plt.show()
答案 0 :(得分:1)
您可以指定颜色贴图,然后将颜色定义为依赖于该颜色贴图的相关性。首先,您需要从matplotlib导入cm:
import matplotlib.cm as cm
然后,将代码的情节线更改为:
plt.scatter(x, y, alpha=0.5, c=corr, cmap=cm.rainbow)
您可以使用any of matplotlib's color maps自定义颜色地图。
答案 1 :(得分:0)
您可以将[0, 1]
中的参数映射到十六进制值:
def corr2hex(n):
''' Maps a number in [0, 1] to a hex string '''
if n == 1: return '#fffff'
else: return '#' + hex(int(n * 16**6))[2:].zfill(6)
print corr2hex(0.31)
>>>
#4f5c28
然后你可以将它传递给matplotlibs to_rgb()
以获得RGB三元组。