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

调用LuxPy包plot_cri_graphics函数无绘图弹出的问题咨询

问题原因

LuxPy的所有绘图功能都是基于Matplotlib实现的,但它的绘图函数默认只负责把线条、色块、标注这些图形元素画到Matplotlib画布上,既不会主动触发窗口弹出,也不会阻塞进程等你看图,所以普通Python脚本跑完直接退出的时候,自然看不到任何弹窗,也不会抛出报错。
函数返回的data是存储所有显色性计算结果的字典,是给你后续自定义计算指标、调整图表细节用的,不是绘图必需的输入,不需要额外传给其他绘图函数。

解决方法

只需要在原有代码的末尾,调用Matplotlib的plt.show()方法就能正常弹出绘图窗口,修正后的可运行代码如下:

import luxpy as lx
import matplotlib.pyplot as plt

SPD = lx._CIE_ILLUMINANTS['F4']
data, _, _ = lx.cri.plot_cri_graphics(SPD)
# 触发Matplotlib窗口渲染显示
plt.show()
补充说明
  • 你测试到的其他类自带的.plot()成员函数无法弹窗,都是同一个原因,所有LuxPy的绘图方法执行完后,统一调用plt.show()即可正常显示
  • 如果是在Jupyter Notebook环境运行,可以在代码开头加上%matplotlib inline魔法命令,图形会直接内嵌在单元格输出区域,不需要弹出独立窗口
  • 如果不需要弹窗、只想把结果存成本地文件,可以在plt.show()之前加一行保存代码:
    plt.savefig('tm30_cri_result.png', dpi=300, bbox_inches='tight')
    
    即可将生成的类TM30显色性可视化结果高清保存到本地。

官方教程里的示例默认是在IPython这类带Matplotlib自动渲染的交互环境下运行的,这类环境会自动把画布内容显示出来,所以示例里没写plt.show(),直接跑普通.py脚本就会出现无弹窗、无报错、无输出的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 00:48:31