Python 能否在matplotlib窗口而不是浏览器中呈现和显示HTML?
我有一个程序,可以生成绘图,并使用matplotlib将其显示给用户。我现在添加了一个功能,它涉及从一些数据生成并修改的HTML。我可以使用webbrowser.open'file://'+htmlFilePath,new=2,autoraise=False来显示修改后的HTML,它将在默认浏览器或为webbrowser配置的任何浏览器中打开 但我真的希望在运行的matplotlib窗口中显示此html,而不是打开单独的浏览器窗口。有没有办法将此HTML显示到matplotlib窗口?无论是作为呈现的HTML,还是作为浏览器呈现的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窗口?无论是作为
对于我所尝试的,我没有太多的代码,因为大多数关于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解决方案是正确的解决方案,因为我的问题本质上是一个显示窗口问题。