plt创建指定色系

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 文件,滑倒最后,我们会看到各色系的名字。

根据该格式,我们创建相应的颜色进行配置即可。

其他:

6、根据系统色系按等间距取一定数量的颜色

下面是用于color的:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

# 定义颜色映射
cmap = plt.cm.get_cmap('nipy_spectral')

# 指定颜色个数
num_colors = 10

# 根据颜色个数生成等间距的值
cmap_values = np.linspace(0, 1, num_colors)

# 根据颜色映射生成颜色列表
colors = cmap(cmap_values)
# 这里获得的是四个列,分别是:红色(R)、绿色(G)、蓝色(B)和透明度(A)通道的值

# 可视化颜色
plt.subplot(2, 1, 1)  # 全部显示
plt.bar(range(num_colors), [1]*num_colors, color=colors)
plt.title('all')


# 根据颜色映射生成颜色列表
colors = cmap(cmap_values)[:5]
plt.subplot(2, 1, 2)  # 只显示无个颜色
plt.bar(range(num_colors), [1]*num_colors, color=colors)
plt.title('non-all')

plt.show()

如果是cmap的:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

# 定义颜色映射
cmap = plt.cm.get_cmap('nipy_spectral')

# 指定颜色个数
num_colors = 10

# 根据颜色个数生成等间距的值
cmap_values = np.linspace(0, 1, num_colors)

# 根据颜色映射生成颜色列表
colors = cmap(cmap_values)
cmaps = ListedColormap(colors)
# 可视化颜色
plt.subplot(3, 1, 1)  # 全部显示
plt.bar(range(num_colors), [1] * num_colors, color=colors)
plt.title('all')

# 根据颜色映射生成颜色列表
plt.subplot(3, 1, 2)  # 只显示无个颜色
plt.imshow([range(10)], cmap=cmaps)
plt.title('all')

# 根据颜色映射生成颜色列表
colors = cmap(cmap_values)[:5]
cmaps = ListedColormap(colors)
plt.subplot(3, 1, 3)  # 只显示无个颜色
plt.imshow([range(5)], cmap=cmaps)
plt.title('non-all')

plt.show()

or:

import matplotlib.pyplot as plt

# 指定颜色个数
num_colors = 10

# 定义颜色映射
cmap = plt.cm.get_cmap('nipy_spectral', num_colors)

# 根据颜色映射生成颜色列表
plt.imshow([range(10)], cmap=cmap)
plt.title('non-all')
plt.show()

官方色系查询:Choosing Colormaps in Matplotlib — Matplotlib 3.8.3 documentation

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清纯世纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值