Python 能否在matplotlib窗口而不是浏览器中呈现和显示HTML?

Python 能否在matplotlib窗口而不是浏览器中呈现和显示HTML?,python,html,matplotlib,Python,Html,Matplotlib,我有一个程序,可以生成绘图,并使用matplotlib将其显示给用户。我现在添加了一个功能,它涉及从一些数据生成并修改的HTML。我可以使用webbrowser.open'file://'+htmlFilePath,new=2,autoraise=False来显示修改后的HTML,它将在默认浏览器或为webbrowser配置的任何浏览器中打开 但我真的希望在运行的matplotlib窗口中显示此html,而不是打开单独的浏览器窗口。有没有办法将此HTML显示到matplotlib窗口?无论是作为

我有一个程序,可以生成绘图,并使用matplotlib将其显示给用户。我现在添加了一个功能,它涉及从一些数据生成并修改的HTML。我可以使用webbrowser.open'file://'+htmlFilePath,new=2,autoraise=False来显示修改后的HTML,它将在默认浏览器或为webbrowser配置的任何浏览器中打开

但我真的希望在运行的matplotlib窗口中显示此html,而不是打开单独的浏览器窗口。有没有办法将此HTML显示到matplotlib窗口?无论是作为呈现的HTML,还是作为浏览器呈现的HTML页面的图片


对于我所尝试的,我没有太多的代码,因为大多数关于stackoverflow的研究都向我展示了如何将matplotlib绘图显示为flask/django的html,这意味着绘图到html而不是html到绘图。我不需要将绘图转换为HTML,我需要将HTML转换为某种图像或numpy数组或类似的东西,以便可以像ax.imshowhtmlFilePath那样显示它。谢谢

您可以在同一GUI窗口中相邻显示webbrowser和matplotlib图形

例如,使用PyQt5,下面将创建一个窗口,并将webbroser放置在左侧,将matplotlib图形放置在右侧

import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5 import QtWidgets
from matplotlib.backends.backend_qt5agg import FigureCanvas, NavigationToolbar2QT
from matplotlib.figure import Figure

class ApplicationWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self._main = QtWidgets.QWidget()
        self.setCentralWidget(self._main)
        layout = QtWidgets.QHBoxLayout(self._main)

        self.web = QWebEngineView()

        self.fig = Figure(figsize=(5, 3))
        self.canvas = FigureCanvas(self.fig)

        layout.addWidget(self.web)
        layout.addWidget(self.canvas)
        self.addToolBar(NavigationToolbar2QT(self.canvas, self))

        self.fill_content("<html><div>Some Html</div></html>", [1,3,2])

    def fill_content(self, html, data):
        self.web.setHtml(html)

        self.fig.clear()
        ax = self.fig.add_subplot(111)
        ax.plot(data)
        self.canvas.draw_idle()


if __name__ == "__main__":
    qapp = QtWidgets.QApplication(sys.argv)
    app = ApplicationWindow()
    app.show()
    qapp.exec_()

那个HTML位会显示什么?由于matplotlib本身无法呈现HTML,因此这听起来像是一种解决方法,最好完全不同地解决它。HTML由可搜索的PDF生成,该PDF使用pdftohtml解析为HTML。这是一个单页视图,pdf格式需要保留,这就是为什么我不想只显示从pdftotext生成的文本。我仍然无法清楚地看到预期的结果。文本是显示在matplotlib图的顶部/内部还是旁边?matplotlib绘图需要交互还是仅仅是一张图片?是否需要转换为HTML,或者您是否可以直接从pdf转换为png图像?pdf转换为HTML可以进行不同的修改,例如,找到带有特定元素的标签并突出显示。情节不需要是交互式的。用户需要看到所做的修改并用眼睛进行验证,并在控制台上输入验证结果。我认为如果它转换为PNG,我将无法找到要修改的区域,例如,找到包含文本foo的区域并将其高亮显示为黄色。这将接近您的目标?谢谢。我确实需要尽快将整个程序包装到GUI中,也许现在是时候在需要GUI的地方进行包装,以使显示更加流畅。我认为GUI解决方案是正确的解决方案,因为我的问题本质上是一个显示窗口问题。