Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. Pyqt scatter mapbox - Not able update selected values in figure.

Pyqt scatter mapbox - Not able update selected values in figure.

Scheduled Pinned Locked Moved Unsolved Qt for Python
1 Posts 1 Posters 254 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    parvathy142203002
    wrote on last edited by
    #1

    Re: PYQT forum
    I want to select the data points using box/lasso selct from a scatter mapbox as below. My code is highlightng selected points. But they are not updated to selectedpoints attribute of fig.data[0]. When i want to print selcted points or pass them to a function, selected points are still none as initially declared.

    import sys
    from PyQt5.QtWebEngineWidgets import QWebEngineView
    from PyQt5.QtWidgets import QApplication, QPushButton, QVBoxLayout, QDialog
    import plotly.graph_objects as go
    import pandas as pd
    import numpy as np
    import plotly.express as px
    from PyQt5.QtWidgets import QApplication, QPushButton, QVBoxLayout, QDialog

    class DashboardScreen(QDialog):
    def init(self):
    super(DashboardScreen, self).init()

        data = {'Fid': ['A', 'B', 'C'],
                'Project': [1,2,3],
                'Date': [23, 24, 25],
                'Latitude': [10, 20, 30],
                'Longitude': [70, 75, 80]}
        df = pd.DataFrame(data)
        
        
        fig = go.Figure(go.Scattermapbox(
            lat=df['Latitude'],
            lon=df['Longitude'],
            hovertext=df['Project'],
            mode='markers',    
            marker={'size': 10, 'color': 'blue'},
            selected=dict(marker={'color': 'red'}),
            selectedpoints=[]
        ))
        
        fig.update_layout(
            mapbox_style="white-bg"  
        )
            
        fig.update_layout(mapbox_layers=[
                {
                    "below": 'traces',
                    "sourcetype": "raster",
                    "sourceattribution": "United States Geological Survey",
                    "source":  [
                "https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}"
                              # "http://localhost:7000/offline_tiles/{z}/{x}/{y}.png"
                               ]
                }
              ],
            margin={"r":0,"t":0,"l":0,"b":0}
        )
        
        self.setLayout(QVBoxLayout())
    
        # Create the web view
        self.webView = QWebEngineView()
        self.webView.setHtml(fig.to_html(include_plotlyjs='cdn'))
        self.layout().addWidget(self.webView)
    
        # Create the push button
        self.button = QPushButton("Pass Selected Data")
        self.button.clicked.connect(lambda: self.passSelectedData(fig))
        self.layout().addWidget(self.button)
    
        
    
    def passSelectedData(self, fig):       
        print(fig.data[0])
        print(fig.data[0].selectedpoints)
            
        if fig.data[0].selectedpoints:
            selected_indices = fig.data[0].selectedpoints
            selected_data = {
                'lat': [fig.data[0].lat[i] for i in selected_indices],
                'lon': [fig.data[0].lon[i] for i in selected_indices]
            }
            print(selected_data)
    

    app = QApplication(sys.argv)
    welcome = DashboardScreen()
    welcome.show()

    if name == 'main':
    try:
    sys.exit(app.exec_())
    except:
    logging.info("Exiting!!")
    print("Exiting!!")

    1 Reply Last reply
    0
    • SGaistS SGaist moved this topic from General and Desktop on

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved