请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4212|回复: 6

[经验总结] python+windows画图工具复现别人论文中的colormap

[复制链接]

新浪微博达人勋

发表于 2022-11-11 10:07:34 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
主要分为以下几个步骤:
1、将别人论文中的colormap截图
2、拖到windows自带的画图工具中
3、使用画图工具中的吸管工具和编辑颜色功能获取每个颜色对应的RGB
4、在python中将获取的RGB生成array
5、利用python中的ListedColormap()函数生成新的colormap

具体操作流程如以下截图所示:
论文中colormap截图

微信截图_20221111094728.png
拖到画图工具中,点击吸管工具获取颜色的RGB
微信截图_20221111095159.png
微信截图_20221111095530.png

使用python编程定义新的colormap并绘制结果:
微信截图_20221111100452.png


具体的python代码如下所示:
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Fri Nov 11 09:40:23 2022

  4. @author: %(jixianpu)s

  5. Email : 211311040008@hhu.edu.cn

  6. introduction : keep learning althongh walk slowly
  7. """

  8. import numpy as np

  9. import cmaps
  10.       
  11. import matplotlib.pyplot as plt

  12. import matplotlib as mpl   

  13. from matplotlib.colors import ListedColormap
  14. #######################生成画板#####################################
  15. fig=plt.figure(figsize=(10,8),dpi=150)

  16. ax1=fig.add_axes([0,0,1,0.05])                                                

  17. from matplotlib.colors import ListedColormap
  18. rgb=(
  19.         [ 100,149,237],
  20.         [ 162,203,122],
  21.         [ 194,233,143],
  22.         [ 223,246,179],
  23.         [ 249,246,212],
  24.         [ 243,236,189],
  25.         [ 228,216,152],
  26.         [222,195,122],
  27.         [ 198,165,115],
  28.         [ 164,138,114],
  29.         [ 159,144,130],
  30.         [ 249,249,254],
  31.         )
  32. rgb=np.array(rgb)/255.0
  33. new_cmap=ListedColormap(rgb,name='new_cmap')
  34. norm =mpl.colors.Normalize(vmin=-12, vmax=12)   
  35. fc1=fig.colorbar(mpl.cm.ScalarMappable(norm=norm,cmap=new_cmap),              
  36.                  cax=ax1,         
  37.                  ticks=[-10,-8,-6,-4,-2,0,2,4,6,8,10],                                            
  38.                  orientation='horizontal',   
  39.                  label='new cmap' ,                                               
  40.                 )                 
复制代码
欢迎交流讨论~

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-11-11 10:45:31 | 显示全部楼层
是的哈哈方法很多,感谢分享
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2022-11-11 10:16:16 | 显示全部楼层
可以考虑使用家园里的GrADS-NCL调色盘.exe,在软件目录的/output/里加上个matplotlib.addin,然后在\output\scripts\这个目录里加上相应的脚本就可以自动克隆取色复制色标了.

matplotlib.py

1.05 KB, 下载次数: 3, 下载积分: 金钱 -5

放置在\output\scripts\文件夹里

matplotlib.addin

63 Bytes, 下载次数: 3, 下载积分: 金钱 -5

放置在\output\scripts\文件夹里

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-11-11 10:31:57 | 显示全部楼层
tulalang 发表于 2022-11-11 10:16
可以考虑使用家园里的GrADS-NCL调色盘.exe,在软件目录的/output/里加上个matplotlib.addin,然后在\output\s ...

挺有意思的,值得尝试。刚发现python中matplotlib.image.imread()也可以实现上述功能
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-11 12:12:22 | 显示全部楼层
PS也可以实现的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-12 09:27:25 | 显示全部楼层
吸管直接调用微信截图就行
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-11-14 15:51:37 | 显示全部楼层
评论区提供了很多好的思路呀,谢谢大家。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表