При этом я получаю сообщение об ошибке:
js: Uncaught (in promise) TypeError: s.replaceAll is not a function
Для проверки концепции я попытался использовать код из этого ответа.
Чтобы заставить его работать на более новых версиях Bokeh, я обновил его
p>
p = plotting.figure(plot_width=300, plot_height=300)
для
p = plotting.figure(width=300, height=300)
Теперь, когда я запускаю программу и нажимаю «Отправить», вместо ожидаемого результата я ничего не вижу, и терминал показывает js: Uncaught (в обещании) TypeError: s.replaceAll is не функция.
Я использую виртуальную среду, и мои версии:
- Python : 3.12.6
- PyQt5: 5.15.11
- PyQtWebEngine: 5.15.7
- Боке: 3,6 .0
import pandas as pd
from bokeh import plotting, embed, resources
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
button = QtWidgets.QPushButton("Submit")
self.m_output = QtWebEngineWidgets.QWebEngineView()
button.clicked.connect(self.on_button_clicked)
lay = QtWidgets.QVBoxLayout(self)
lay.addWidget(button)
lay.addWidget(self.m_output)
self.resize(640, 480)
@QtCore.pyqtSlot()
def on_button_clicked(self):
p = plotting.figure(width=300, height=300)
data = {"Day": [0, 1, 2, 3, 0, 1], "Num": [0, 0, 1, 1, 2, 3]}
df = pd.DataFrame(data)
p.hexbin(df.Day, df.Num, size=0.5)
html = embed.file_html(p, resources.CDN, "my plot")
self.m_output.setHtml(html)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
Подробнее здесь: https://stackoverflow.com/questions/791 ... replaceall