matplotlib中的图例设置(numpoints和散点)不起作用

时间:2013-10-22 21:19:32

标签: python matplotlib

我试图将传说正确用于虚线,所以我稍微使用了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()

结果是: Problematic legend

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

谢谢!

1 个答案:

答案 0 :(得分: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')

你得到这张图片:enter image description here

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

如果您想更改图例中线条的长度,请尝试使用matplotlib.rcParams['legend.handlelength']和/或matplotlib.rcParams['legend.handleheight']。有关rc文件的更多信息,请访问here

根据@tcaswell的建议,您不必设置rc参数。所有legend.*参数均可用作legend函数的关键字。见matplotlib.pyplot.legend documentation