Показать в системном средстве просмотра изображений
Вы можете открыть изображение, созданное с помощью графика, в системном средстве просмотра изображений по умолчанию, которое является своего рода автономным окном.
import numpy as np
import plotly.graph_objs as go
fig = go.Figure()
fig.add_scatter(x=np.random.rand(100), y=np.random.rand(100), mode='markers',
marker={'size': 30, 'color': np.random.rand(100), 'opacity': 0.6,
'colorscale': 'Viridis'});
def show(fig):
import io
import plotly.io as pio
from PIL import Image
buf = io.BytesIO()
pio.write_image(fig, buf)
img = Image.open(buf)
img.show()
show(fig)
Недостатокэто, конечно, то, что у вас нет никакого взаимодействия.
Создать окно браузера
Альтернативой может быть создание окна веб-браузера для отображения HTML-страницы, сгенерированной плотно.Для этого вам необходимо использовать инструментарий GUI, который позволяет создавать браузер.PyQt5 будет один.
Таким образом, следующее создает окно PyQt5 с браузером и загружает html-страницу, созданную с помощью графика, внутри которой вы можете взаимодействовать.(Это протестировано с pyqt 5.9, может не работать с более старыми версиями.)
import numpy as np
import plotly.graph_objs as go
fig = go.Figure()
fig.add_scatter(x=np.random.rand(100), y=np.random.rand(100), mode='markers',
marker={'size': 30, 'color': np.random.rand(100), 'opacity': 0.6,
'colorscale': 'Viridis'});
def show_in_window(fig):
import sys, os
import plotly.offline
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtWidgets import QApplication
plotly.offline.plot(fig, filename='name.html', auto_open=False)
app = QApplication(sys.argv)
web = QWebEngineView()
file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "name.html"))
web.load(QUrl.fromLocalFile(file_path))
web.show()
sys.exit(app.exec_())
show_in_window(fig)