python - 如何在 matplotlib 的折线图上绘制最大值点?

标签 python python-3.x matplotlib plot

所以我正在运行 Python 3.4,并且想知道如何使用 matplotlib 将最大值绘制为当前线性图上的点。我当前的图表非常简单:它有两条线,y 值作为分数,x 值作为时间。我试图在达到最高分数时在每条线上绘制一个点,并显示其坐标:(最佳时间,最大分数)。有谁知道是否有办法用 matplotlib 来做到这一点?提前致谢。

最佳答案

我最终做的是使用两个图(time_list 是 x 轴值,score 是 y 值列表):

ordered_time = [time_list for (score,time_list) in sorted(zip(score,time_list))]
best_time = ordered_time[-1]
max_coords = '('+str(best_time)+', ' + str("%.4f" % (max(score)))+')'
max_point = pl.plot(best_time, max(score), 'bo', label="(Opt. Time, Max Score)")
pl.text(best_time, max(score), max_coords)
... (insert rest of stuff for your graph)

这将找到特定线上的最大点,在其上绘制一个点,然后用其坐标标记该点。

如果您想要坐标以外的不同文本标签,只需将最后一行中的“max_coords”替换为您想要的任何字符串即可。

如果您想找到每行的最大值,则只需使用多个 x 和 y 列表并执行相同的过程(例如,使用“time_list_1”、“time_list_2”等代替“time_list”和“score”)。 .和“score_1”、“score_2”...)

希望这对某人有帮助。

关于python - 如何在 matplotlib 的折线图上绘制最大值点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899193/

相关文章:

python - 如何检查注释是否是 Python 中的 ClassVar?

python-3.x - 如何从服务器端的字符串中使用Elementtree XML解析?

python - 如何使工具栏中的工具按钮一次只能选择一个?

Python 错误 : AttributeError: __enter__

python - 计算具有不同采样点数量的离散函数的平均值

python - 使用python matplotlib时如何避免 "suptitle"和 "subplots"之间的重叠?

numpy - 在 Matplotlib 中更改 clabel 的文本

python - 不要在轴上写出所有日期,Matplotlib

python - Docker 错误 - 命令错误 : "0.0.0.0:" is not a valid port number or address:port pair

python - Pandas groupby 在保留多个聚合的组内进行排序,并使用构面将其可视化