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之间的颜色。




  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用matplotlib库中的basemap工具箱来在地图上画图标,下面是一个简单的示例代码:from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt # 创建地图对象 m = Basemap(projection='mill', llcrnrlat=20, urcrnrlat=50, llcrnrlon=-130, urcrnrlon=-60, resolution='c') # 画出地图轮廓 m.drawcoastlines() # 画出图标 m.plot(x, y, 'ro', markersize=4) # 显示图像 plt.show() ### 回答2: 使用matplotlib在地图上画图标可以通过以下步骤实现: 1. 导入需要的库:首先,需要导入matplotlib库以及matplotlib的子库Basemap和pyplot。 import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap 2. 创建地图:通过Basemap函数创建一个地图对象,指定地图的投影方式、地图范围等参数。例如,可以选择使用Mercator投影以及设置地图的经度范围为[-180,180],纬度范围为[-90,90]。 map = Basemap(projection='merc', llcrnrlon=-180, llcrnrlat=-90, urcrnrlon=180, urcrnrlat=90) 3. 绘制地图:使用绘图函数绘制地图,可以使用drawcoastlines函数绘制海岸线,drawcountries函数绘制国界线等。同时,还可以使用fillcontinents函数填充大陆区域以及drawmapboundary函数绘制地图边界。 map.drawcoastlines() map.drawcountries() map.fillcontinents(color='gray', lake_color='white') map.drawmapboundary(fill_color='white') 4. 添加图标:通过scatter函数在地图上添加图标。可以传入经度、纬度等参数来指定图标的位置,同时可以设置图标的样式、颜色等属性。 lon = [经度列表] lat = [纬度列表] map.scatter(lon, lat, marker='o', color='red', zorder=10) 5. 标注图标:可以使用annotate函数在图标上添加文本标注,标注图标的名称等信息。 for i in range(len(lon)): x, y = map(lon[i], lat[i]) plt.annotate('图标名称', xy=(x, y), xytext=(5, 5), textcoords='offset points') 6. 显示图像:使用show函数显示地图和图标。 plt.show() 以上是使用matplotlib在地图上画图标的基本代码。根据具体的需求,还可以对地图的样式、图标的样式等进行进一步的设置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值