Python 在matplotlib.pyplot中使用虚线标记y值

Python 在matplotlib.pyplot中使用虚线标记y值,python,matplotlib,Python,Matplotlib,我正在尝试使用matplotlib.pyplot绘制图形 它看起来像这样: 我想标记x的第一个值,其中y达到了最高值(这是已知的,比如x=23,y=y[23]),如下图所示: 我已经搜索了一段时间了,几乎没有成功。目前,我尝试添加一条直线,但其行为方式并不理想: import matplotlib.pyplot as plt import numpy as np x = [i for i in range (1,201)] y = np.loadtxt('final_fscore.txt'

我正在尝试使用matplotlib.pyplot绘制图形

它看起来像这样:

我想标记x的第一个值,其中y达到了最高值(这是已知的,比如x=23,y=y[23]),如下图所示:

我已经搜索了一段时间了,几乎没有成功。目前,我尝试添加一条直线,但其行为方式并不理想:

import matplotlib.pyplot as plt
import numpy as np

x = [i for i in range (1,201)]
y = np.loadtxt('final_fscore.txt', dtype=np.float128)

plt.plot(x, y, lw=2)

plt.plot([23,y[23]], [23,0])

plt.show()
结果图:


注意:我想把这个图做成第二张图。

不清楚
y[23]
在这里会做什么。您需要找出最大值和发生这种情况的索引(
np.argmax
)。然后,您可以使用这些坐标绘制一条3点线

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(9)

x = np.arange(200)
y = np.cumsum(np.random.randn(200))
plt.plot(x, y, lw=2)

amax = np.argmax(y)
xlim,ylim = plt.xlim(), plt.ylim()
plt.plot([x[amax], x[amax], xlim[0]], [xlim[0], y[amax], y[amax]],
          linestyle="--")
plt.xlim(xlim)
plt.ylim(ylim)

plt.show()

现在还不清楚
y[23]
会在这里做什么。您需要找出最大值和发生这种情况的索引(
np.argmax
)。然后,您可以使用这些坐标绘制一条3点线

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(9)

x = np.arange(200)
y = np.cumsum(np.random.randn(200))
plt.plot(x, y, lw=2)

amax = np.argmax(y)
xlim,ylim = plt.xlim(), plt.ylim()
plt.plot([x[amax], x[amax], xlim[0]], [xlim[0], y[amax], y[amax]],
          linestyle="--")
plt.xlim(xlim)
plt.ylim(ylim)

plt.show()

谢谢!很抱歉,关于y[23]的歧义。在这里,我假设y的最大值在x=23处,因此在本例中y的最大值必须是y[23]。啊,好吧,这与python的列表索引表示法是不明确的,其中
y[23]
将是
y
中的第24个值。有没有办法也显示这些值?(第二张图中的0.87和320)谢谢!很抱歉,关于y[23]的歧义。在这里,我假设y的最大值在x=23处,因此在本例中y的最大值必须是y[23]。啊,好吧,这与python的列表索引表示法是不明确的,其中
y[23]
将是
y
中的第24个值。有没有办法也显示这些值?(第二张图中为0.87和320)