Код для простого отображения карты следующий:
Код: Выделить всё
import sys import plotly.express as px from PySide6.QtWebEngineWidgets import QWebEngineView
def show_qt(fig):
raw_html = ''
raw_html += ''
raw_html += ''
raw_html += po.plot(fig, include_plotlyjs=False, output_type='div')
raw_html += ''
fig_view = QWebEngineView()
fig_view.setHtml(raw_html)
fig_view.show()
fig_view.raise_()
return fig_view
if __name__ == '__main__':
app = QApplication(sys.argv)
# Load GeoJSON data
with open('map1.geojson') as f:
geojson_data = json.load(f)
# DataFrame with generic region names
df = pd.DataFrame({
"region": [
"Test Region 1",
"Test Region 2",
"Test Region 3",
"Test Region 4",
"Test Region 5",
"Test Region 6",
"Test Region 7",
"Test Region 8",
"Test Region 9",
"Test Region 10",
"Test Region 11",
"Test Region 12"
],
"unemp": [
1.2,
5.2,
7.1,
6.5,
4.8,
8.2,
6.9,
9.4,
7.6,
5.0,
11.3,
6.7
]
})
fig = px.choropleth(
df,
geojson=geojson_data,
locations='region', # Match using 'region'
featureidkey="properties.region", # Use 'region' from GeoJSON
color='unemp', # Use the 'unemp' column
color_continuous_scale="Viridis",
range_color=(0, 12),
labels={'unemp': 'Unemployment Rate'}
)
fig.update_geos(
visible=False, # Hide all the map elements
showland=False, # Hide land
showocean=False, # Hide oceans
showcountries=False, # Hide countries
showcoastlines=False # Hide coastlines
)
fig.update_geos(fitbounds="locations")
# Show the map directly in the PySide6 interface
fig_view = show_qt(fig)
sys.exit(app.exec())
Страница и настройки, которые у меня есть в Qt Designer
Скриншот Qt Designer
Я преобразовал предыдущий код в класс под названием mapwidget, а затем в своем основном файле я просто вызываю виджет карты в классе главного окна
Код: Выделить всё
self.map_widget = MapWidget() # Create the map widget
# Add the MapWidget to the layout of page_map
self.ui.page_map.layout().addWidget(self.map_widget)
Код: Выделить всё
if btnWidget.objectName() == "btn_map":
self.ui.stackedWidget.setCurrentWidget(self.ui.page_map)
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-designer