生成颜色legend的python代码

import pandas as pd
import matplotlib.pyplot as plt

def create_color_legend(classes_rgb, name_classes, title):
    df = pd.DataFrame({
        'Mineral Class': name_classes,
        'Color (RGB)': [str(rgb) for rgb in classes_rgb.values()],
        'Color Sample': [''] * len(name_classes)
    })

    fig, ax = plt.subplots(figsize=(8, len(name_classes) * 0.5 + 1.5))
    ax.axis('off')
    ax.set_title(title, fontsize=14, pad=20)

    table = ax.table(
        cellText=df.values,
        colLabels=df.columns,
        cellLoc='center',
        loc='center',
        colColours=['#eaeaea'] * len(df.columns)
    )
    table.auto_set_font_size(False)
    table.set_fontsize(12)
    table.scale(1, 1.3)

    # 设置颜色块
    for i, rgb in enumerate(classes_rgb.values()):
        cell = table[(i+1, 2)]  # (row, col) Color Sample列
        cell.set_facecolor([x/255 for x in rgb])
        cell.get_text().set_text('')  # 不显示文字

    plt.tight_layout()
    plt.show()

# 定义数据
CopratesChasma_classes_RGB = {
    'High-Ca Pyroxene': [140, 180, 255], 
    'Hydrated Silica': [140, 255, 160], 
    'Jarosite': [255, 230, 140], 
    'Margarite': [255, 170, 190], 
    'Talc': [255, 190, 140]
}
CopratesChasma_NAME_Classes = ['High-Ca Pyroxene', 'Hydrated Silica', 'Jarosite', 'Margarite', 'Talc']

GaleCrater_classes_RGB = {
    'Analcime': [255, 140, 160], 
    'Bassanite': [140, 180, 255], 
    'Chlorite': [140, 255, 170], 
    'Fe/Ca-Carbonate': [238, 232, 170], 
    'Hydrated Silica': [210, 160, 255], 
    'Illite/Muscovite': [140, 255, 220], 
    'Mg-Smectite': [255, 190, 160], 
    'Polyhydrated sulfate': [180, 160, 255]
}
GaleCrater_NAME_Classes = ['Analcime', 'Bassanite', 'Chlorite', 'Fe/Ca-Carbonate', 'Hydrated Silica', 'Illite/Muscovite', 'Mg-Smectite', 'Polyhydrated sulfate']

MelasChasma_classes_RGB = {
    'Analcime': [255, 160, 160], 
    'High-Ca Pyroxene': [140, 180, 255], 
    'Hydrated Silica': [140, 255, 140], 
    'Margarite': [240, 230, 140], 
    'Prehnite': [255, 190, 230]
}
MelasChasma_NAME_Classes = ['Analcime', 'High-Ca Pyroxene', 'Hydrated Silica', 'Margarite', 'Prehnite']

# 生成图例
create_color_legend(CopratesChasma_classes_RGB, CopratesChasma_NAME_Classes, "Coprates Chasma Color Legend")
create_color_legend(GaleCrater_classes_RGB, GaleCrater_NAME_Classes, "Gale Crater Color Legend")
create_color_legend(MelasChasma_classes_RGB, MelasChasma_NAME_Classes, "Melas Chasma Color Legend")

效果

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

司南锤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值