matplotlib - 如何根据 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
。
我不确定如何绘制红线和绿线,因为它们是基于 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()
推荐阅读
- apache-spark - 如何在 impala 中捕获丢失的记录
- ruby - 如果 fluentd 中的正则表达式模式不匹配,则打印一个完整的行
- r - VarSelLCM 返回错误,但输入变量似乎是因子和整数
- wordpress - 将一页嵌入另一页(简码?)
- animation - 使用 (x,y,z) 坐标信息为 3D 角色设置动画
- linux - Bash - 获取文件的内容
- laravel - 在 Laravel 7 测试中使用自定义测试模型
- c# - 用具有超链接的 HTML 替换 dotx 文件中的 sdtelement 在 C# 中不起作用
- javascript - 使用 JavaScript 在玩家之间切换
- java - API Java MongoDB:异步模式下 insertOne() 中的编译时错误