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)]
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")
效果

