如何绘制分段连续折线图并为不同分段设置不同颜色?
解决Matplotlib折线图分段绘制衔接问题
你当前代码的问题在于,plt.plot()如果只传入y值列表,默认会使用从0开始的连续整数作为x轴坐标。第一段lst[:5]对应的x轴是0-4,而第二段lst[7:]默认x轴是0-2,导致两段折线在x轴0-2区域重叠,无法按原始数据顺序衔接。
要让第二段折线在原始数据的正确位置绘制并衔接第一段末尾,需要手动指定两段折线对应的原始x轴索引:
修改后的代码:
import matplotlib.pyplot as plt lst = [5,10,15,8,9,6,8,12,13,6] # 第一段:x轴对应原始索引0-4,绘制前5个元素 plt.plot(range(5), lst[:5]) # 第二段:x轴对应原始索引7-9,绘制从第8个元素开始的部分 plt.plot(range(7, len(lst)), lst[7:], color='red') plt.show()
如果需要两段折线完全连续(中间无空隙),可以调整切片范围,让两段的x轴索引连续:
import matplotlib.pyplot as plt lst = [5,10,15,8,9,6,8,12,13,6] # 第一段绘制到原始索引6(包含),x轴0-6 plt.plot(range(7), lst[:7]) # 第二段从原始索引7开始,x轴7-9,和第一段自然衔接 plt.plot(range(7, len(lst)), lst[7:], color='red') plt.show()
核心逻辑:通过range()生成与原始数据索引对应的x轴坐标,确保两段折线在x轴上按数据的真实顺序排列,避免默认x轴导致的重叠问题。
内容的提问来源于stack exchange,提问作者Mirkos M.
相关产品推荐
相关产品推荐

