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)
谢谢你的快速回复