python - matplotlib 中的图例设置(numpoints 和 scatterpoints)不起作用

标签 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

并且可以看出,虚线的数字点数是不够的。有人愿意帮忙吗?

谢谢!

最佳答案

如果您绘制带有标记的图,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

关于python - matplotlib 中的图例设置(numpoints 和 scatterpoints)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19528579/

相关文章:

python - 检查用户输入的用户名和密码在MYSQL数据库中是否存在

python - 不使用 Matplotlib 表示半个像素

python - Matplotlib 补丁大小(以点为单位)

python - Pandas 重新采样不规则时间序列

python - 基于通过欧氏距离(或任何其他距离计算技术)提取的 SIFT 描述符估计两幅图像的相似性分数

python - 如何获取文件系统上文件的内容 'filter' ?

python - Python 中的 Gamma 函数图

matplotlib - 如何在 Google Colab 中使用 matplotlib 绘制交互式可绘制图像?

python - 如何在seaborn图中设置x轴刻度标签

python - 在 python 中实现高效的固定大小 FIFO