Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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 使用数字破折号作为无效参数“Figure.layout”传入图形时出错,应为“object”。提供了类型为`的数组`_Python_Pandas_Plotly_Plotly Dash - Fatal编程技术网

Python 使用数字破折号作为无效参数“Figure.layout”传入图形时出错,应为“object”。提供了类型为`的数组`

Python 使用数字破折号作为无效参数“Figure.layout”传入图形时出错,应为“object”。提供了类型为`的数组`,python,pandas,plotly,plotly-dash,Python,Pandas,Plotly,Plotly Dash,我正在尝试使用dash绘制一些数据的代码,我在想,我做得对。但不确定为什么会得到一个非常奇怪的信息(plotly 3.8.1和dash 0.42) 我收到的错误消息是: Invalid argument figure.layout passed into Graph with ID “graph-with-slider”. Expected object. Was supplied type array. 我已经创建了一个输出,它运行良好并提供数据,问题在于布局和图形调用。我不明白 exte

我正在尝试使用dash绘制一些数据的代码,我在想,我做得对。但不确定为什么会得到一个非常奇怪的信息(plotly 3.8.1和dash 0.42)

我收到的错误消息是:

Invalid argument figure.layout passed into Graph with ID “graph-with-slider”. Expected object. Was supplied type array.
我已经创建了一个输出,它运行良好并提供数据,问题在于布局和图形调用。我不明白

 external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
#
app = dash.Dash(__name__, external_stylesheets = external_stylesheets)
server = app.server

app.config['suppress_callback_exceptions'] = True
app.css.config.serve_locally = True
app.scripts.config.serve_locally = True

#
app.layout = html.Div([
        html.Div([
            html.H1('Testing Phase', style = {'text-align': 'center'}),


                html.H5('Enter ID'),
                dcc.Dropdown(
                    id = 'id',
                    style = {'width': '250px'},
                    options = [
                        {'label': 'AA', 'value': 'AA'},
                        {'label': 'AC', 'value': 'AC'},
                        {'label': 'UQ', 'value': 'UQ'},
                        {'label': 'NT', 'value': 'NT'},
                        {'label': 'PQ', 'value': 'PQ'}],
                    value = 'AA'
                ),

                html.H5('Enter Zone Yield Item'),
                dcc.Dropdown(
                    id = 'mz',
                    style = {'width': '200px'},
                    options = [
                        {'label': 'E1', 'value': 'E1'},
                        {'label': 'E2', 'value': 'E2'},
                        {'label': 'E3', 'value': 'E3'},
                        {'label': 'E4', 'value': 'E4'},
                        {'label': 'E5', 'value': 'E5'},
                        {'label': 'E6', 'value': 'E6'}],
                    value = 'E1'
                ),
    

                html.Br(),
                html.Br(),

                html.Button(
                    id = 'submit',
                    n_clicks = 0,
                    children = 'Submit'

                ),

                html.Br(),
                html.Br(),

                   html.Div([

                    dcc.Graph(
                        id='mygraph'
                    ),

                ]),

                html.Br(),
                html.Br(),

            ])
        ])

    ])

@app.callback(Output('mygraph', 'figure'),
                       [Input('submit', 'n_clicks')],
                       [State('pid', 'value'), State('mz', 'value')])])
def update_figure(n_clicks, pid, zone):

        mydf = SomeFuncFunc(id, zone)

        fit_data = mydf[0]

        l_col = fit_data.columns[2]

        z_col = fit_data.columns[3]  

        z2_col = fit_data.columns[4]

        l1_v = str(l_col)
        z1_v = str(z_col)


        print("Starting Trace")

        fits = []

        fits.append(go.Scatter(
            x = fit_data[l_col],
            y = fit_data[z_col],
            mode = 'markers',
            opacity = 0.9,
            marker = {
                'size': 20, 'symbol': "hexagon", "color": "orange",
                'line': {'width': 0.5, 'color': 'white'}
            },
            name = z1_v + "_" + "Plot",
        )),

        fits.append(go.Scatter(
             x = fit_data[l_col],
             y = fit_data[z2_col],
            mode = 'markers',
            opacity = 0.9,
            marker = {
                'size': 20, 'symbol': "diamond-open-dot", "color": "blue",
                'line': {'width': 0.9, 'color': 'red'}
            },
            name = z1_v + "_" + "Fit",
        )),

        mylayout = go.Layout(
             width = 800,
             height = 500,
            xaxis = {'title': 'X axis'},
            yaxis = {'title': 'Y axis'}
            margin={'l': 40, 'b': 40, 't': 10, 'r': 10},
            legend = {'x': 0, 'y': 1},
            hovermode = 'closest'
        ),
        fig = {'data':  fits, 'layout':mylayout}

        return fig



 if __name__ == '__main__':

      app.run_server(debug = True, port=8053)  #
它应该绘制数据。如果我不包括布局,它就是在打印,但并不总是这样

错误详细信息:

(This error originated from the built-in JavaScript code that runs Dash apps. Click to see the full stack trace or open your browser's console.)Error: Invalid argument `figure.layout` passed into Graph with ID "graphid".
Expected `object`.
Was supplied type `array`.
   at propTypeErrorHandler (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/dash_renderer.dev.js?v=0.23.0&m=1557158783:40947:5)

   at CheckedComponent (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/dash_renderer.dev.js?v=0.23.0&m=1557158783:37306:9)

   at Td (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/react-dom@16.8.6.min.js?v=0.23.0&m=1557158783:82:9)

   at be (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/react-dom@16.8.6.min.js?v=0.23.0&m=1557158783:91:477)

   at hi (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/react-dom@16.8.6.min.js?v=0.23.0&m=1557158783:104:140)

   at Qg (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/react-dom@16.8.6.min.js?v=0.23.0&m=1557158783:144:287)

   at Rg (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/react-dom@16.8.6.min.js?v=0.23.0&m=1557158783:145:166)

   at Sc (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/react-dom@16.8.6.min.js?v=0.23.0&m=1557158783:158:109)

   at Z (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/react-dom@16.8.6.min.js?v=0.23.0&m=1557158783:156:492)

   at Kc (http://127.0.0.1:8053/_dash-component-suites/dash_renderer/react-dom@16.8.6.min.js?v=0.23.0&m=1557158783:155:69)

如图所示,问题是由于布局末尾的逗号触发了图形布局被视为数组而不是对象。它现在运转良好

您正在请求调试帮助,但如果没有运行应用程序所需的所有代码,对某人来说,再现您的错误将非常困难。然而,不太可能有人会跳进调试对您来说如此复杂的东西。我建议你采取以下步骤:1。将您提到的“无效参数…”错误的完整堆栈跟踪复制到新文件中。2.仔细检查堆栈跟踪,找出代码将值传递到库代码中的位置。3.插入print语句以查看传递给库的值。4.重新阅读图书馆的API文档。谢谢。我试图粘贴错误:在原始帖子的最后一部分中,我认为我可以提供帮助,但如果没有示例数据框,这并不容易。首先,删除这一行
app.config['suppress\u callback\u exceptions']=True
。有一些不应该被抑制的实际错误。第二,我认为这行
dcc.Dropdown(id='id',
应该有
id='pid'
,因为您在
状态中使用
pid
值。我想我需要一个示例数据框来做更多的工作。还有一些括号和括号不匹配的问题,我必须修复它们才能运行。谢谢。我认为问题是由于布局末尾的逗号,这触发将图形布局作为数组而不是对象。它现在工作正常。