Python 如何访问plotly/Chloroleth地图的悬停国家名称。有没有一种像getter一样的方法可以做到这一点?

Python 如何访问plotly/Chloroleth地图的悬停国家名称。有没有一种像getter一样的方法可以做到这一点?,python,plotly,plotly-dash,Python,Plotly,Plotly Dash,这可能是一个完全愚蠢的问题,但我无法访问python中plotly对象的某些字段。到目前为止,我一直在使用java,我的新大学希望我编写一些python的东西,我可能因为java的思维方式而陷入了困境 问题: 如何访问plotly/Chloroleth地图的内部字段 代码示例: 首先,我导入plotly express并创建一个plotly世界地图,稍后我将使用该地图选择一个国家 import plotly.express as px gapminder = px.data.gapminder(

这可能是一个完全愚蠢的问题,但我无法访问python中plotly对象的某些字段。到目前为止,我一直在使用java,我的新大学希望我编写一些python的东西,我可能因为java的思维方式而陷入了困境

问题: 如何访问plotly/Chloroleth地图的内部字段

代码示例: 首先,我导入plotly express并创建一个plotly世界地图,稍后我将使用该地图选择一个国家

import plotly.express as px
gapminder = px.data.gapminder().query("year == 2007")
mapfig = px.scatter_geo(gapminder,
                    locations="iso_alpha",
                    hover_name="country",
                    size="pop")
后来,我通过html将图形可视化

html.Div(
    dcc.Graph(
        id='country-selector',
        figure=mapfig,
    )
)
当我现在运行python脚本时,我看到了一个世界地图,我可以在任何国家上空悬停,看到一个带有人口和国家名称的弹出窗口。到现在为止,一直都还不错。现在的问题是:当我尝试更新其他图形时,我无法在代码中访问国家名称/或悬停名称

我想象的是:
也许有人比我更精通python,并且深知答案。谢谢你抽出时间

您可以从
hoverData
访问国家名称,如下所示:

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px

app = dash.Dash()

gapminder = px.data.gapminder().query("year == 2007")
mapfig = px.scatter_geo(gapminder,
                        locations="iso_alpha",
                        hover_name="country",
                        size="pop")
app.layout = html.Div([
    dcc.Graph(
        id='country-selector',
        figure=mapfig,
    ),
], className="container")

@app.callback(
    dash.dependencies.Output('country-selector', 'figure'),
    [dash.dependencies.Input('country-selector', 'hoverData')],
    [dash.dependencies.State('country-selector', 'figure')]
)
def drawStockPrice(hover_data, figure):
    data = figure['data']
    layout = figure['layout']

    if hover_data is not None:
        print('Country:', hover_data['points'][0]['hovertext'])

    return {'data': data, 'layout': layout}

if __name__ == '__main__':
    app.run_server(debug=True)
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px

app = dash.Dash()

gapminder = px.data.gapminder().query("year == 2007")
mapfig = px.scatter_geo(gapminder,
                        locations="iso_alpha",
                        hover_name="country",
                        size="pop")
app.layout = html.Div([
    dcc.Graph(
        id='country-selector',
        figure=mapfig,
    ),
], className="container")

@app.callback(
    dash.dependencies.Output('country-selector', 'figure'),
    [dash.dependencies.Input('country-selector', 'hoverData')],
    [dash.dependencies.State('country-selector', 'figure')]
)
def drawStockPrice(hover_data, figure):
    data = figure['data']
    layout = figure['layout']

    if hover_data is not None:
        print('Country:', hover_data['points'][0]['hovertext'])

    return {'data': data, 'layout': layout}

if __name__ == '__main__':
    app.run_server(debug=True)