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

时间:2017-08-03 14:35:08

标签: 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()

我想要做的是绘制list1和list2中的点作为线条,但是,在点x之前,我想以某种样式绘制列表1中的点,并且在x之后绘制不同的样式。我的代码的问题是我从0开始都有三个图,因此,x之后的行不是从x开始而是从0开始。如何修复代码?

1 个答案:

答案 0 :(得分:2)

您可以将x坐标赋予plt.plot以及y坐标。因此,假设它们只是list1list2中项目的整数索引,您可以这样做:

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)