[英]TypeError: update_graph_scatter() takes 0 positional arguments but 1 was given
TypeError: update_graph_scatter() takes 0 positional arguments but 1 was given TypeError: update_graph_scatter() 采用 0 位置 arguments 但给出了 1 Getting the above error while using dash with python.将破折号与 python 一起使用时出现上述错误。 Below is my code.下面是我的代码。
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.graph_objs as go
import requests
app = dash.Dash()
app.layout = html.Div([
html.Div([
html.Iframe(src = 'https://www.flightradar24.com', height = 500, width = 1200)
]),
html.Div([
html.Pre(
id='counter_text',
children='Active flights worldwide:'
),
dcc.Graph(id='live-update-graph',style={'width':1200}),
dcc.Interval(
id='interval-component',
interval=6000, # 6000 milliseconds = 6 seconds
n_intervals=0
)])
])
counter_list = []
@app.callback(Output('counter_text', 'children'),
[Input('interval-component', 'n_intervals')])
@staticmethod
def update_layout(n):
url = "https://data-live.flightradar24.com/zones/fcgi/feed.js?faa=1\
&mlat=1&flarm=1&adsb=1&gnd=1&air=1&vehicles=1&estimated=1&stats=1"
# A fake header is necessary to access the site:
res = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
data = res.json()
counter = 0
for element in data["stats"]["total"]:
counter += data["stats"]["total"][element]
counter_list.append(counter)
return 'Active flights worldwide: {}'.format(counter)
@app.callback(Output('live-update-graph','figure'),
[Input('interval-component', 'n_intervals')])
def update_graph(n):
fig = go.Figure(
data = [go.Scatter(
x = list(range(len(counter_list))),
y = counter_list,
mode='lines+markers'
)])
return fig
if __name__ == '__main__':
app.run_server()
Please help as i have tried every solution to no avail请帮助,因为我尝试了所有解决方案都无济于事
The problem is the decorator, @staticmethod
, here:问题是这里的装饰器@staticmethod
:
@app.callback(Output('counter_text', 'children'),
[Input('interval-component', 'n_intervals')])
@staticmethod
def update_layout(n):
url = "https://data-live.flightradar24.com/zones/fcgi/feed.js?faa=1\
&mlat=1&flarm=1&adsb=1&gnd=1&air=1&vehicles=1&estimated=1&stats=1"
This is a normal function, not a method of a class, so the @staticmethod
decorator is incorrect here.这是一个普通的 function,而不是 class 的方法,所以这里的@staticmethod
装饰器不正确。 I removed that, and your app worked nicely.我删除了它,您的应用程序运行良好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.