Python 在matplotlib中,在某个点之前和之后绘制具有不同样式的线

Python 在matplotlib中,在某个点之前和之后绘制具有不同样式的线,python,matplotlib,Python,Matplotlib,我有以下代码: plt.plot(list1[0: x], '-', c="r", linewidth=3) plt.plot(list1[x:], '.', c="b", linewidth=3) plt.plot(list2, '-', c="k", linewidth=2) plt.savefig("myfig") plt.clf() 我想做的是将列表1和列表2中的点绘制为直线,但是,在点x之前,我想以某种样式绘制列表1中的点,在x之后以不同的样式绘制点。我的代码的问题是,我的三个

我有以下代码:

plt.plot(list1[0: x], '-', c="r", linewidth=3)

plt.plot(list1[x:], '.', c="b", linewidth=3)

plt.plot(list2, '-', c="k", linewidth=2)

plt.savefig("myfig")
plt.clf()

我想做的是将列表1和列表2中的点绘制为直线,但是,在点x之前,我想以某种样式绘制列表1中的点,在x之后以不同的样式绘制点。我的代码的问题是,我的三个图都是从0开始的,因此,应该在x之后的线不是从x开始的,而是从0开始的。如何修复代码?

您可以为plt.plot提供x坐标以及y坐标。因此,假设它们只是
list1
list2
中项目的整数索引,您可以这样做:

x1 = range(len(list1))
x2 = range(len(list2))

plt.plot(x1[0:x], list1[0:x], '-', c="r", linewidth=3)

plt.plot(x1[x:], list1[x:], '.', c="b", linewidth=3)

plt.plot(x2, list2, '-', c="k", linewidth=2)

谢谢你的快速回复