所以我正在运行 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”...)
希望这对某人有帮助。
我是一名优秀的程序员,十分优秀!