В этом примере я пытаюсь добавить фигуру и сохранить график с помощью кнопки конфигурации
[img]https://i.sstatic.net /jtyOWazF.png[/img]
на этом изображении:
Я могу рисовать (прямоугольник, линию,...), я могу изменять его фигуру, но я не могу ее удалить?
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout
from PyQt5.QtWebEngineWidgets import QWebEngineView
import plotly.graph_objects as go
import plotly.io as pio
class PlotApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Dessin et suppression avec eraseshape')
self.setGeometry(100, 100, 800, 600)
# Layout principal
self.layout = QVBoxLayout()
# Vue du graphique Plotly
self.plot_view = QWebEngineView()
self.layout.addWidget(self.plot_view)
# Définir le layout de la fenêtre
self.setLayout(self.layout)
# Créer et afficher le graphique
self.create_plot()
def create_plot(self):
# Créer un graphique vide
fig = go.Figure()
fig.add_trace(go.Scatter(x=[1, 2, 3, 4, 5], y=[1, 3, 2, 4, 5], mode='markers'))
# Configuration des outils interactifs
config = {
'modeBarButtonsToAdd': [
'drawline',
'drawopenpath',
'drawclosedpath',
'drawcircle',
'drawrect',
'eraseshape'
],
'editable': True, # Permet d'éditer et de supprimer
'displayModeBar': True # Affiche la barre d'outils
}
# Mise à jour des axes et des dimensions du graphique
fig.update_layout(
title='Test de dessin et suppression avec eraseshape',
xaxis=dict(range=[0, 10]),
yaxis=dict(range=[0, 10]),
height=600,
)
# Convertir le graphique Plotly en HTML
html = pio.to_html(fig, full_html=False, include_plotlyjs='cdn', config=config)
# Charger le graphique dans la vue QWebEngineView
self.plot_view.setHtml(html)
if __name__ == '__main__':
# Lancer l'application PyQt
app = QApplication(sys.argv)
ex = PlotApp()
ex.show()
sys.exit(app.exec_())
Мне нужно отобразить график в окнах pyqt5, поэтому я не могу отобразить график в другом окне
В этом примере я пытаюсь добавить фигуру и сохранить график с помощью кнопки конфигурации [img]https://i.sstatic.net /jtyOWazF.png[/img] на этом изображении: [list] [*]Я могу рисовать (прямоугольник, линию,...), я могу изменять его фигуру, но я не могу ее удалить? [*]Я не могу сохранить график [/list] Код: [code]import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout from PyQt5.QtWebEngineWidgets import QWebEngineView import plotly.graph_objects as go import plotly.io as pio [/code] Я создаю окно pyqt [code]class PlotApp(QWidget): def __init__(self): super().__init__() self.initUI()
def initUI(self): self.setWindowTitle('Dessin et suppression avec eraseshape') self.setGeometry(100, 100, 800, 600)
# Layout principal self.layout = QVBoxLayout()
# Vue du graphique Plotly self.plot_view = QWebEngineView() self.layout.addWidget(self.plot_view)
# Définir le layout de la fenêtre self.setLayout(self.layout)
# Créer et afficher le graphique self.create_plot()
def create_plot(self): # Créer un graphique vide fig = go.Figure()
# Configuration des outils interactifs config = { 'modeBarButtonsToAdd': [ 'drawline', 'drawopenpath', 'drawclosedpath', 'drawcircle', 'drawrect', 'eraseshape' ], 'editable': True, # Permet d'éditer et de supprimer 'displayModeBar': True # Affiche la barre d'outils }
# Mise à jour des axes et des dimensions du graphique fig.update_layout( title='Test de dessin et suppression avec eraseshape', xaxis=dict(range=[0, 10]), yaxis=dict(range=[0, 10]), height=600, )
# Convertir le graphique Plotly en HTML html = pio.to_html(fig, full_html=False, include_plotlyjs='cdn', config=config)
# Charger le graphique dans la vue QWebEngineView self.plot_view.setHtml(html)
if __name__ == '__main__': # Lancer l'application PyQt app = QApplication(sys.argv) ex = PlotApp() ex.show() sys.exit(app.exec_()) [/code] Мне нужно отобразить график в окнах pyqt5, поэтому я не могу отобразить график в другом окне