matplotlib 使用你自己想要的color map

最近使用matplotlib画图,想要使用一个三段的红-绿-蓝映射,并且带有一定梯度,就像这样:


不过,发现matplotlib中虽然带有很多映射方式,但是只有brg方式,没有rgb方式再见

就像这样:


nx.draw_networkx(G,pos, edge_color = edge_length, edge_cmap = plt.get_cmap('brg'))

那么怎么办呢?如果直接将[0,1]等分三段,分别是纯红、纯绿、纯蓝,是非常难看的。

于是将官网例子http://scipy.github.io/old-wiki/pages/Cookbook/Matplotlib/Show_colormaps

(这是非常好的例子,各种color map 方式都有)

修改了一下:

import matplotlib
import matplotlib.colors as col
import matplotlib.cm as cm
import matplotlib.pyplot as plt
import numpy as np
# example 2: use the "fromList() method
startcolor = '#ff0000'   #红色,读者可以自行修改
midcolor = '#00ff00'     #绿色,读者可以自行修改
endcolor = '#0000ff'          #蓝色,读者可以自行修改
cmap2 = col.LinearSegmentedColormap.from_list('own2',[startcolor,midcolor,endcolor])
# extra arguments are N=256, gamma=1.0
cm.register_cmap(cmap=cmap2)
# we can skip name here as it was already defined 

当register_cmap执行完毕后,调用该color map 的名称 'own2',即可。

cm.get_cmap('own2')

就获得了文章开头的红-绿-蓝有过渡的颜色映射。函数自动使用插值计算0-1之间的颜色。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值