3

我试图让虚线的图例正确,所以我稍微使用了 rcParams,但由于某些原因它无法在我的计算机上运行。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib

matplotlib.rcParams['legend.numpoints'] = 5
matplotlib.rcParams['legend.scatterpoints'] = 5


fig, axs = plt.subplots()
axs.plot(range(10), '--k', label="line")
axs.plot(range(10), range(10)[::-1], ':k', label="scatter")
axs.legend(loc=9)

plt.show()

结果是: 有问题的传说

可以看出,虚线的 numpoints 是不够的。有人可以帮忙吗?

谢谢!

4

1 回答 1

4

如果您使用标记绘制绘图,请matplotlib.rcParams['legend.numpoints']调整图例线上绘制的点数。

如果你用这些代替你的情节:

axs.plot(range(10), '--k', label="line", marker='d')
axs.plot(range(10), range(10)[::-1], ':k', label="scatter", marker='o')

你得到这个图像:在此处输入图像描述

我不知道有什么作用matplotlib.rcParams['legend.scatterpoints'],但我想调节散点图图例中的点数。

如果您想更改图例中线条的长度,请尝试使用matplotlib.rcParams['legend.handlelength']and/or matplotlib.rcParams['legend.handleheight']。有关 rc 文件的更多信息可以在这里找到

正如@tcaswell 所建议的,您不必设置 rc 参数。所有legend.*参数都可用作legend函数的关键字。查看matplotlib.pyplot.legend文档

于 2013-10-22T21:35:30.517 回答