You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib图例需求:移除图例手柄,仅保留带色标签

解决Matplotlib图例仅保留带颜色标签文本的问题

你可以通过两种方式移除图例手柄,只保留带对应颜色的标签文本:

方法一:使用空色块生成无手柄图例

创建完全透明的色块作为图例手柄,让图例仅显示标签文本,再设置文本对应颜色:

import matplotlib.pyplot as plt
from matplotlib.patches import Patch

# 假设my_data、my_labels、label2color为已定义变量
fig, axes = plt.subplots()

# 绘制所有数据点
for x, y, c in my_data:
    axes.plot(x, y, color=c)

# 创建无可见效果的色块作为手柄
handles = [Patch(facecolor="none", edgecolor="none") for _ in my_labels]
# 生成图例
legend = axes.legend(handles=handles, labels=my_labels, loc="best")

# 设置每个标签的对应颜色
for text in legend.get_texts():
    text.set_color(label2color[text.get_text()])

plt.show()

方法二:隐藏现有图例的手柄

直接将图例默认生成的手柄设置为不可见,仅保留文本部分:

import matplotlib.pyplot as plt

# 假设my_data、my_labels、label2color为已定义变量
fig, axes = plt.subplots()

# 绘制所有数据点
for x, y, c in my_data:
    axes.plot(x, y, color=c)

# 生成图例
legend = axes.legend(loc="best", labels=my_labels)
# 隐藏所有手柄
for handle in legend.get_handles():
    handle.set_visible(False)
# 设置标签文本颜色
for text in legend.get_texts():
    text.set_color(label2color[text.get_text()])

plt.show()

两种方法都能实现需求:第一种从根源避免生成可见手柄,第二种直接修改已生成的图例元素。

内容的提问来源于stack exchange,提问作者sds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 21:53:20