You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用列表推导式绘制独立Matplotlib图表?(单行代码实现)

解决Matplotlib列表推导式生成独立图表的问题

嘿,这个问题我熟!你现在的代码之所以会产出重叠的图表,是因为plt.plot()默认会在当前激活的同一个画布(figure)上绘制所有线条。要生成两个独立的图表,关键是每次绘制前都创建一个新的画布就行,用单行列表推导式就能实现。

单行解决方案代码

import matplotlib.pyplot as plt

test = [[1, 2, 3, 4],[5, 6, 7, 8]]
# 单行列表推导式生成两个独立图表
[plt.figure() or plt.plot(item) for item in test]

plt.show()

代码解释

  • plt.figure():每次调用都会创建一个全新的空白画布,这是让图表独立的核心。
  • 用or连接是因为plt.figure()会返回一个Figure对象(属于真值),所以or后面的plt.plot(item)会被执行,同时把新画布设为当前活跃画布,这样每个线条都会画在自己的画布上。
  • 如果你想让代码可读性更强,也可以写成更直观的单行写法:
    [plt.plot(item) for item in test for _ in [plt.figure()]]
    
    这个写法用嵌套循环先创建画布再绘图,逻辑更清晰,同样是单行实现。

内容的提问来源于stack exchange,提问作者yufiP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:53:03