admin 2026-02-13 10:23:15 世界杯足球鞋

编写自定义图例#

编写自定义图例#

逐个组合自定义图例。

注意

有关创建和自定义图例的更多信息,请参阅以下页面:

图例指南

图例演示

有时您不希望图例与您绘制的数据明确关联。例如,假设您绘制了10条线,但不想为每条线显示一个图例项。如果您只是绘制线并调用ax.legend(),您将得到以下结果:

import matplotlib.pyplot as plt

import numpy as np

import matplotlib as mpl

from matplotlib import cycler

# Fixing random state for reproducibility

np.random.seed(19680801)

N = 10

data = (np.geomspace(1, 10, 100) + np.random.randn(N, 100)).T

cmap = plt.cm.coolwarm

mpl.rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))

fig, ax = plt.subplots()

lines = ax.plot(data)

由于数据没有任何标签,因此创建图例需要我们定义图标和标签。在这种情况下,我们可以使用与所绘制数据没有明确关联的Matplotlib对象来组合图例。例如:

from matplotlib.lines import Line2D

custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),

Line2D([0], [0], color=cmap(.5), lw=4),

Line2D([0], [0], color=cmap(1.), lw=4)]

fig, ax = plt.subplots()

lines = ax.plot(data)

ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])

还有许多其他Matplotlib对象可以这样使用。在下面的代码中,我们列出了一些常用的对象。

from matplotlib.lines import Line2D

from matplotlib.patches import Patch

legend_elements = [Line2D([0], [0], color='b', lw=4, label='Line'),

Line2D([0], [0], marker='o', color='w', label='Scatter',

markerfacecolor='g', markersize=15),

Patch(facecolor='orange', edgecolor='r',

label='Color Patch')]

# Create the figure

fig, ax = plt.subplots()

ax.legend(handles=legend_elements, loc='center')

plt.show()

脚本总运行时间: (0 分 3.027 秒)

下载 Jupyter notebook: custom_legends.ipynb

下载 Python 源代码: custom_legends.py

下载 压缩文件: custom_legends.zip

由 Sphinx-Gallery 生成的画廊

Copyright © 2088 世界杯金靴奖_2014年巴西世界杯预选赛 - omdzds.com All Rights Reserved.
友情链接