首页 > 解决方案 > pyplot图例的Facecolor不显示

问题描述

我有一个等高线图,我想使用具有纯白色背景的图例,以便在等高线上可以读取图例。

我的问题是,当我更改 facecolor 时,什么也没有发生。我也尝试过更改 framealpha,但没有任何反应。这是一个玩具代码,以及结果图。如何更改图例的 facecolor 以使图例在轮廓上可读?

import numpy as np
import matplotlib.pyplot as plt

# Create data

delta = 0.025
x = np.arange(-1.0, 1.0, delta)
y = np.arange(-1.0, 1.0, delta)
X, Y = np.meshgrid(x, y)
Z = np.exp(-X**2 - Y**3)

# Plot data

fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z)

# Create legend.
# Code modified from https://github.com/matplotlib/matplotlib/issues/11134

CS_elem,_ = CS.legend_elements()
ax.legend(CS_elem, ['-X**2 - Y**3'], loc='lower left',facecolor="blue", framealpha=1)

在此处输入图像描述

标签: pythonmatplotlib

解决方案


根据您的评论,您已设置legend.frameonFalse. 默认值为True,以便根据文件的文档“在背景补丁上绘制图例matplotlibrc。没有补丁,facecolor就无法应用。


推荐阅读