TypeError: update_graph() takes 1 positional argument but 2 were given

Hallo everyone,

I wanna create a dashboard, which include 2 graphs (pie chart and scatter), but i have some problem while combining them, please, help me !

TypeError: update_graph() takes 1 positional argument but 2 were given

import dash
from dash import html as html
from dash import dcc as dcc
from dash.dependencies import Input, Output
import pandas as pd
import plotly.express as px
import seaborn as sns

#getting the dataset

data1 = pd.read_csv('C:/Users/huyho/Documents/code/Copy-of-adidas.csv')

#dash app

app = dash.Dash()

app.layout = html.Div(children = [
		html.H1(children = 'The correlation between operating profit and six distinct types of products sold'), dcc.Dropdown(id = 'geo-dropdown',
			options =[{'label': i, 'value' : i}
				for i in data1['Product'].unique()],
			value = "Men's Street Footwear"),
		dcc.Graph(id = 'price-graph')
		html.Label(['The percentage of goods selling by six retialers']),
			id = 'my_dropdown',
			options = [{'label':'retialers','value': 'Retailer'},
						{'label':'Sales Method', 'value' :'Sales Method'}
			value = 'Retailer',
			multi = False,
			clearable = False,
			style = {"width":"50%"}

		dcc.Graph(id = 'the_graph')

	Output(component_id = 'price-graph',component_property ='figure'),
	Output(component_id = 'the_graph',component_property = 'figure'),
	Input(component_id = 'geo-dropdown',component_property = 'value'),
	Input(component_id= 'my_dropdown',component_property = 'value')

def update_graph(selected_product):
	a = data1[data1['Product'] == selected_product]
	graph = px.scatter(a, x ='Units Sold' , y = 'Operating Profit',color ="Sales Method")

def update_graph(my_dropdown):
    dff = data1
    piechart = px.pie(data_frame = dff, names = my_dropdown,hole = .3,)

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

Best regards,

Hi @H281004, welcome to the forums.

You have two inputs but your function def update_graph() does only take one argument.

Depending on what behaviour is expected you could either create two separate callbacks or combine your second function update_grap() (which is not used right now) into the first.