如何根据 matplotlib 中的间隔绘制线条?
How to draw lines based on intervals in matplotlib?
我有这三个列表
odds = [1,3,5,7,9]
evens = [2,4,6,8,10]
all_nums = [2,1,4,3,6,5,8,7,10,9]
我需要先画一条线来显示 all_nums
中的值,然后再画另外两条线来连接 odds
和 evens
中的值。
比如我先画了all_nums
这条线之后,我得到了
我最终的预期图表应该是
我不确定如何绘制红线和绿线,因为它们是根据 x 轴上相对于蓝线的“间隔 2”生成的。
我用我当前的代码创建了一个 repl.it。
注意,我的真实项目比这个例子更复杂,其中第一行看起来像
而且我需要连接所有的谷点和所有的峰点,所以我不能简单地在绘制时将odds = [1,3,5,7,9]
更改为odds = [1,2,3,4,5,6,7,8,9,10]
等技巧,因为我希望曲线之间的连接也可以平滑点.
感谢您的帮助!
我对偶数行和奇数行做了类似的事情。看起来很奇怪 1:1 甚至看起来像 y-2.
odds = [1,3,5,7,9]
evens = [2,4,6,8,10]
all_nums = [2,1,4,3,6,5,8,7,10,9]
even_sep=[]
odd_sep=[]
plt.plot(range(len(all_nums)), all_nums, label='odds and evens')
for draw_num_iter in range(len(all_nums)):
draw_num = all_nums[draw_num_iter]
plt.annotate(draw_num, xy=(draw_num_iter, draw_num), size=20)
for i in range(len(evens)):
even_sep.append(evens[i]-2)
plt.plot(even_sep,evens,'ro-')
for i in range(len(odds)):
odd_sep.append(odds[i])
plt.plot(odd_sep,odds,'g')
plt.legend(loc='best')
plt.show()
我有这三个列表
odds = [1,3,5,7,9]
evens = [2,4,6,8,10]
all_nums = [2,1,4,3,6,5,8,7,10,9]
我需要先画一条线来显示 all_nums
中的值,然后再画另外两条线来连接 odds
和 evens
中的值。
比如我先画了all_nums
这条线之后,我得到了
我最终的预期图表应该是
我不确定如何绘制红线和绿线,因为它们是根据 x 轴上相对于蓝线的“间隔 2”生成的。
我用我当前的代码创建了一个 repl.it。
注意,我的真实项目比这个例子更复杂,其中第一行看起来像
odds = [1,3,5,7,9]
更改为odds = [1,2,3,4,5,6,7,8,9,10]
等技巧,因为我希望曲线之间的连接也可以平滑点.
感谢您的帮助!
我对偶数行和奇数行做了类似的事情。看起来很奇怪 1:1 甚至看起来像 y-2.
odds = [1,3,5,7,9]
evens = [2,4,6,8,10]
all_nums = [2,1,4,3,6,5,8,7,10,9]
even_sep=[]
odd_sep=[]
plt.plot(range(len(all_nums)), all_nums, label='odds and evens')
for draw_num_iter in range(len(all_nums)):
draw_num = all_nums[draw_num_iter]
plt.annotate(draw_num, xy=(draw_num_iter, draw_num), size=20)
for i in range(len(evens)):
even_sep.append(evens[i]-2)
plt.plot(even_sep,evens,'ro-')
for i in range(len(odds)):
odd_sep.append(odds[i])
plt.plot(odd_sep,odds,'g')
plt.legend(loc='best')
plt.show()