想象一下,在你作图的时候,是不是需要自己配色;或者当你在复现别人结果的时候,需要把影像加载到Map上,但是发现颜色映射表不好写。你可能在一个好期刊上找到了配色表,但是又不知道这个颜色的具体值是什么。此时,你很很想知道,但是又无从下手。怎么办?当然有解决办法。今天的内容就是关于这个小工具的使用的。
那下面的图片为例,我们现在想看看Corn和Soybean区域的颜色值是多少,以及如何转为16进站的6位数。我们怎么做才可以呢?
我们可以用一个截图工具,例如微信自带的截图工具,我们按住截图键,然后停在我们需要的位置,如下图所示。此时,你就会发现原来黄色corn区域的rgb颜色映射值是(255,209,10)。我们现在需要把这个值转换为16进制颜色值,例如#FFD9A1这种形式,该如何操作呢?
你可能想着在网上找一些小插件来实现,但是很多时候并不好用。那么,有没有什么好的解决办法呢?有的,那就是直接编写代码来实现。例如,我们使用下面的代码,就可以实现下面的颜色映射了。
具体代码如下:
import matplotlib.pyplot as plt
def rgb_to_hex(rgb_color):
"""
将RGB颜色转换为16进制颜色
:param rgb_color: (R, G, B) 元组,例如 (255, 87, 51)
:return: 16进制颜色字符串,例如 "#FF5733"
"""
return "#{:02X}{:02X}{:02X}".format(*rgb_color)
def show_color_from_rgb(rgb_color):
"""
显示指定的RGB颜色
:param rgb_color: (R, G, B) 元组,例如 (255, 87, 51)
"""
hex_color = rgb_to_hex(rgb_color)
print(f"RGB颜色: {rgb_color} 转换为 16进制: {hex_color}")
# 创建一个颜色块
plt.figure(figsize=(2, 2))
plt.imshow([[rgb_color]], extent=[0, 1, 0, 1])
plt.axis('off') # 不显示坐标轴
plt.title(f"Color: {rgb_color}", fontsize=12)
plt.show()
# 示例使用
rgb_color = (255,209,10) # 你可以替换为任意RGB值
show_color_from_rgb(rgb_color)
如果你没有Python编译器,或者电脑没有安装Python,你也可以直接使用网页的Python编译器。
例如,我们把上面的代码复制到网页编辑器(https://www.mycompiler.io/new/python),就可以实现上面的功能,非常的方便。效果图如下所示:
大家快去用起来吧!!!
交流合作&科研搭子
想加入交流群的同学可加小编微信让其邀请进群(扫描下方二维码咨询报名或菜单栏“联系我们”选项框都可以找到小编哟)。注意,咨询加群验证信息请备注为“学位-研究方向-学校-加群”格式,否则不予通过。例如,假如你是武汉大学土地利用分类方向的博士研究生,则可以备注“博士-LULC-武大-加群”;假如你是清华水文方向的硕士研究生,则可以备注“硕士-水文-清华-加群”。
如果有帮助,点赞、关注、转发一下呗