Python matplolib中hline末端的标记?

Python matplolib中hline末端的标记?,python,matplotlib,Python,Matplotlib,我想运行以下代码: import numpy as np import matplotlib.pyplot as plt #xs = np.linspace(1, 21, 200) plt.figure(figsize=(6, 3)) plt.hlines(y='Test1', xmin=1929, xmax=1978, colors='red', linestyles='-', lw=2, label='Test1') plt.hlines(y='Test2', xmin=1800, xm

我想运行以下代码:

import numpy as np
import matplotlib.pyplot as plt

#xs = np.linspace(1, 21, 200)

plt.figure(figsize=(6, 3))
plt.hlines(y='Test1', xmin=1929, xmax=1978, colors='red', linestyles='-', lw=2, label='Test1')
plt.hlines(y='Test2', xmin=1800, xmax=1991, colors='blue', linestyles='-', lw=2, label='Test2')
plt.hlines(y='Test3', xmin=1930, xmax=2007, colors='green', linestyles='-', lw=2, label='Test3')
plt.show()
得到这个精确的输出:

但是,我希望在每行的两端都有标记(圆)

从文档中可以看出,标记在hline中似乎不是一个选项


有人能推荐一种替代方法来复制相同的图形,但使用标记吗?

您可以使用如下常规绘图来实现目标:

import matplotlib.pyplot as plt

plt.figure(figsize=(6, 3))
plt.plot([1929, 1978], ['Test1', 'Test1'], '-o', color='red')
plt.plot([1800, 1991], ['Test2', 'Test2'], '-o', color='blue')
plt.plot([1930, 2007], ['Test3', 'Test3'], '-o', color='green')
 plt.plot([1929, 1978], ['Test1', 'Test1'], '-o', color='red', markevery=[-1])
这将导致:

从@LorenaGil编辑: 如果想要在行尾添加标记,可以使用
markevery
参数,如下所示:

import matplotlib.pyplot as plt

plt.figure(figsize=(6, 3))
plt.plot([1929, 1978], ['Test1', 'Test1'], '-o', color='red')
plt.plot([1800, 1991], ['Test2', 'Test2'], '-o', color='blue')
plt.plot([1930, 2007], ['Test3', 'Test3'], '-o', color='green')
 plt.plot([1929, 1978], ['Test1', 'Test1'], '-o', color='red', markevery=[-1])

相关:哦,很抱歉,我不知道“LineCollection”这个词,所以它没有出现,谢谢。此外,如果你只想在行的末尾使用标记,你可以使用参数markevery,如下所示:plt.plot([19291978],'Test1','Test1'],'-o',color='red',markevery=[-1])@LorenaGil True,但OP在两端都说了。但这句话很好,我会把它添加到答案中。