python - Matplotlib:如何将散点图和线图组合到一个图例条目
问题描述
我使用 ax.scatter() 绘制数据点,并使用 ax.plot() 将数据点与拟合连接起来。
如何在图例中创建一个通用条目,将数据点的标记与拟合线相结合?我想获得一个传奇条目,因为我会得到它ax.plot(x, y, '-o', label = 'abc')
。
我创建了以下最小示例:
import matplotlib.pyplot as plt
import numpy as np
x_scatter = np.linspace(0,10,10)
x_line = np.linspace(0,10,100)
fig, ax = plt.subplots()
for i in range(5):
ax.scatter(x_scatter, np.sin(x_scatter) + i, label = i)
ax.plot(x_line, np.sin(x_line)+i)
plt.legend(loc='best')
plt.show()
解决方案
这个“黑客”应该有效:
import matplotlib.pyplot as plt
import numpy as np
x_scatter = np.linspace(0,10,10)
x_line = np.linspace(0,10,100)
fig, ax = plt.subplots()
prop = ax._get_lines.prop_cycler
for i in range(5):
color = next(prop)['color']
ax.scatter(x_scatter, np.sin(x_scatter) + i, color=color)
ax.plot(x_line, np.sin(x_line)+i, color=color)
ax.plot([], [], '-o', color=color, label = i)
plt.legend(loc='best')
plt.show()
推荐阅读
- c# - 已安装的 Office Word 加载项无法正常工作
- http - 如何在 CoAP 请求中发送令牌?
- c# - 事件处理程序不会在控制台中启动,但在 Windows 中会启动
- python - Python - 多处理
- ssl - 如何使用新的 HTTPS 本地主机证书
- python - 如何获取最长公共子串的索引?
- c# - WPF:具有多个活动规则的语音语法不起作用
- python - 使用 python 将表单编码为电子邮件正文
- python - 通过view1呈现的HTML将参数从视图函数传递到另一个而不更改URL?
- excel - VBA 将公式添加到具有来自另一个已关闭工作簿的命名区域的单元格(运行时错误“1004”)