Matplotlib(Python)中为多条折线设置独立颜色的问题排查
问题原因
你写的两层嵌套循环逻辑错误:外层循环遍历颜色时,内层循环会把所有折线都用当前颜色重新绘制一遍。比如第一次循环用橙色画6条线,第二次用绿色覆盖重画6条……直到最后一次用粉色完成所有折线的重绘,所以最终显示的全是最后一个颜色的折线。
修复方法
方法1:用zip配对颜色与数据(推荐)
直接将颜色列表和数据列表一一对应遍历,写法简洁直观:
colours = ["#ffa500", "#008000", "#ff0000", "#800080", "#7f6000", "#ffa7b6"] lists = [list1, list2, list3, list4, list5, list6] for colour, data in zip(colours, lists): plt.plot(x, data, color=colour)
方法2:按索引遍历(适合新手理解)
通过索引同时获取对应位置的颜色和数据,只需一层循环:
for i in range(len(lists)): plt.plot(x, lists[i], color=colours[i])
⚠️ 注意:要保证colours和lists的长度完全相同,否则会出现索引越界错误。
内容的提问来源于stack exchange,提问作者canderous
相关产品推荐
相关产品推荐

