Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Dash中更新choropleth贴图_Python_Plotly_Plotly Dash - Fatal编程技术网

Python 如何在Dash中更新choropleth贴图

Python 如何在Dash中更新choropleth贴图,python,plotly,plotly-dash,Python,Plotly,Plotly Dash,我正在使用Python和Dash制作一个Web应用程序,这个Web应用程序包括一个choropleth世界地图,其中包含基于所选年份的数据。我希望能够改变这一年,并以此更新地图以匹配这一年。我更喜欢用仪表板滑块来实现这一点,尽管我也希望用其他方式 我尝试过用文本输入更新其他图形,如折线图,但当我将其更改为choropleth映射时,它停止了更新。它现在只创建地图,但不会显示地图上的更新。我在update函数中添加了一些打印文本,它确认在我更改输入时确实调用了它,但是图形没有更新 布局:使用dcc

我正在使用Python和Dash制作一个Web应用程序,这个Web应用程序包括一个choropleth世界地图,其中包含基于所选年份的数据。我希望能够改变这一年,并以此更新地图以匹配这一年。我更喜欢用仪表板滑块来实现这一点,尽管我也希望用其他方式

我尝试过用文本输入更新其他图形,如折线图,但当我将其更改为choropleth映射时,它停止了更新。它现在只创建地图,但不会显示地图上的更新。我在update函数中添加了一些打印文本,它确认在我更改输入时确实调用了它,但是图形没有更新

布局:使用dcc.input,我想更新html.Div'my Div' 更新部分 我期望的是:当更改文本输入或滑块输入时,choropleth会更新。
实际:地图创建一次(使用与更新它相同的功能),但不更新。

Dash不喜欢这样加载新组件。尝试通过向布局中添加空图形来初始化图形,如下所示:

html.Div(id='my-Div',子对象=[
图(
id='my-graph-id',
数字=数字(
数据=[],
布局={},
),
)
])
当图形已经在页面上时,您必须更改回调,以便它更新
图形的
图形
属性,而不是
div的
子项

另外,您有多个相同的ID。达什不喜欢那样。确保每个ID都是唯一的。如果所有这些仍然不起作用,我可能需要请您发布更多详细信息,以便我可以进一步提供帮助。祝你好运

app.layout = html.Div( children=[
    html.H1(
        children='UN Sustainable Development goal: Poverty',
        style={
            'textAlign': 'center',
            'color': colors
        }
    ),
    dcc.Input(id='my-id',value='30', type='text'),
    html.Div(id='my-div')
    ,
    daq.Slider(
        id='my-daq-slider',
        min=1,
        max=sliderlength,
        step=1,
    ),
    html.Div(id='slider-output')

    

    
],        style={
        'textAlign': 'center'
    })

@app.callback(
    Output('my-div', 'children'),
    [Input('my-id', 'value')])

def update_output_div(input_value):
    return dcc.Graph(
        id='my-div',

        figure={'data': [go.Choropleth(
    locations = df_pov['Country Code'],
    z = df_pov.iloc[:,int(input_value)],
    text = df_pov['Country Name'],
    
    autocolorscale = True,
    reversescale = False,
    marker = go.choropleth.Marker(
        line = go.choropleth.marker.Line(
            color = 'rgb(180,180,180)',
            width = 0.5
        )),
    colorbar = go.choropleth.ColorBar(
        tickprefix = '%',
        title = '%  below 1.90$ '),
)],
                'layout': go.Layout(
    title = go.layout.Title(
        text = list(df_pov)[int(input_value)]
    ),
    geo = go.layout.Geo(
        showframe = False,
        showcoastlines = False,
        projection = go.layout.geo.Projection(
            type = 'equirectangular'
        )
    ),
    annotations = [go.layout.Annotation(
        x = 0.55,
        y = 0.1,
        xref = 'paper',
        yref = 'paper',
        text = 'Source: Kaggle',
        showarrow = False
    )]
)            
        }
    )