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

调用Matplotlib函数后DearPyGui视口缩小问题求助

解决DearPyGui与Matplotlib联动时视口缩小的问题

方案1:同步DPI设置修复独立窗口冲突

问题根源是Matplotlib默认DPI与DearPyGui视口DPI不匹配,导致显示图表后系统缩放设置被修改。手动同步两者DPI即可解决:

import dearpygui.dearpygui as dpg
import matplotlib.pyplot as plt

def open_graph():
    # 获取DearPyGui视口的DPI值
    viewport_dpi = dpg.get_viewport_dpi()
    # 强制Matplotlib使用相同DPI
    plt.rcParams['figure.dpi'] = viewport_dpi
    
    plt.plot([1, 2, 3, 4, 5])
    plt.show()
    
    # 可选:关闭图表后恢复Matplotlib默认DPI
    plt.rcParams['figure.dpi'] = plt.rcParamsDefault['figure.dpi']

dpg.create_context()
dpg.create_viewport()
dpg.setup_dearpygui()

with dpg.window(label="Example Window", tag="primary"):
    dpg.add_button(label="Open Graph", callback=open_graph)

dpg.show_viewport()
dpg.set_primary_window("primary", True)
dpg.start_dearpygui()
dpg.destroy_context()

方案2:将Matplotlib图表嵌入DearPyGui窗口(推荐)

使用DearPyGui内置的Matplotlib集成组件,把图表直接嵌入窗口,彻底避免独立窗口的冲突问题:

import dearpygui.dearpygui as dpg
import matplotlib.pyplot as plt
from matplotlib.backends.backend_agg import FigureCanvasAgg

def update_graph():
    # 创建Matplotlib图表
    fig, ax = plt.subplots()
    ax.plot([1, 2, 3, 4, 5])
    
    # 将图表渲染到DearPyGui的mpl_plot组件
    canvas = FigureCanvasAgg(fig)
    canvas.draw()
    renderer = canvas.get_renderer()
    buf = renderer.buffer_rgba()
    dpg.set_value("plot", buf)
    
    # 清理Matplotlib资源,防止内存泄漏
    plt.close(fig)

dpg.create_context()
dpg.create_viewport()
dpg.setup_dearpygui()

with dpg.window(label="Example Window", tag="primary"):
    dpg.add_button(label="Update Graph", callback=update_graph)
    # 创建用于显示图表的mpl_plot组件
    dpg.add_mpl_plot(tag="plot", width=600, height=400)

dpg.show_viewport()
dpg.set_primary_window("primary", True)
dpg.start_dearpygui()
dpg.destroy_context()

补充提示

  • 若更换后端无效,可在导入Matplotlib前指定后端:
    import matplotlib
    matplotlib.use('TkAgg')  # 或'Qt5Agg',根据系统支持选择
    
  • 复杂图表建议放在子线程绘制,完成后用dpg.invoke_callback在主线程更新UI,避免阻塞DearPyGui界面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:12:47