1、创建不连续色系
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
# 定义颜色的RGB值
colors = [(0.2, 0.4, 0.6), # 蓝色
(0.8, 0.1, 0.3), # 红色
(0.5, 0.7, 0.2),
(0.3,0.5,0.8)] # 绿色
# 创建色系
cmap = ListedColormap(colors)
# 绘制色系
plt.imshow([range(10)], cmap=cmap, aspect='auto')
plt.show()
2、创建连续色系
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
# 定义颜色的RGB值
colors = [(0.2, 0.4, 0.6), # 蓝色
(0.8, 0.1, 0.3), # 红色
(0.5, 0.7, 0.2),
(0.3,0.5,0.8)] # 绿色
# 创建颜色映射
cmap = LinearSegmentedColormap.from_list('CustomCmap', colors, N=100)
# 绘制色系
plt.imshow([range(100)], cmap=cmap, aspect='auto')
plt.colorbar()
plt.show()
3、保存这个色系为 json 文件
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import json
# 定义颜色的RGB值
colors = [(0.2, 0.4, 0.6), # 蓝色
(0.8, 0.1, 0.3), # 红色
(0.5, 0.7, 0.2),
(0.3,0.5,0.8)] # 绿色
# 创建颜色映射
cmap = LinearSegmentedColormap.from_list('CustomCmap', colors, N=100)
# 保存颜色映射数据到文件
cmap_data = cmap._segmentdata
with open('custom_cmap.json', 'w') as file:
json.dump(cmap_data, file)
# 在其他程序中加载颜色映射数据并使用
with open('custom_cmap.json', 'r') as file:
cmap_data = json.load(file)
cmap = LinearSegmentedColormap('custom_cmap', cmap_data)
# 绘制色系
plt.imshow(np.random.rand(10, 10), cmap=cmap)
plt.colorbar()
plt.show()
4、获取色系rgb值
from matplotlib.colors import LinearSegmentedColormap
# 定义颜色的RGB值
colors = [(0.2, 0.4, 0.6), # 蓝色
(0.8, 0.1, 0.3), # 红色
(0.5, 0.7, 0.2),
(0.3,0.5,0.8)] # 绿色
# 创建颜色映射
cmap = LinearSegmentedColormap.from_list('CustomCmap', colors, N=100)
# 获取颜色映射的数据
cmap_data = cmap._segmentdata
print(cmap_data)
5、修改plt内置色系或增加色系
我们找到plt相应的色系文件:
matpltlib的颜色表数据在 _cm.py 文件里(D:\Anaconda3\Lib\site-packages\matplotlib)
打开_cm.py 文件,滑倒最后,我们会看到各色系的名字。
根据该格式,我们创建相应的颜色进行配置即可。