Панель инструментов (тире) не отображает графикуPython

Программы на Python
Ответить
Гость
 Панель инструментов (тире) не отображает графику

Сообщение Гость »


несмотря на то, что код не содержит явных ошибок, созданная кодом информационная панель не отображает графику так, как предполагалось. Как я могу это исправить? Извините за плохой английский. Большое спасибо! Вот код:

тире импорта из тире импорта DCC из тире импортировать HTML из Dash.зависимостей импортировать ввод, вывод импортировать панд как pd импортируйтеplotly.graph_objs как идти импортироватьplotly.express как px # Загрузите данные с помощью панд data = pd.read_csv('https://cf-courses-data.s3.us.cloud-obj ... _sales.csv') # Инициализируем приложение Dash приложение = тире.Дэш() # Установите заголовок панели инструментов app.title = "Панель статистики продаж автомобилей" #------------------------------------------------- -------------------------------- # Создайте параметры выпадающего меню dropdown_options = [ {'label': 'Годовая статистика', 'value': 'Годовая статистика'}, {'label': 'Статистика периода рецессии', 'value': 'Статистика периода рецессии'} ] # Список лет year_list = [i для i в диапазоне (1980, 2024, 1)] #------------------------------------------------- -------------------------------------- # Создаем макет приложения app.layout = html.Div([ #TASK 2.1 Добавить заголовок на панель мониторинга html.H1("Панель статистики продаж автомобилей", style={'textAlign': 'center', 'color': '#503D36', 'font-size': 24} #Может включать стиль для заголовка ), #TASK 2.2: Добавьте два раскрывающихся меню html.Div([html.Label("Выбрать статистику:"), dcc.Dropdown(id='dropdown-statistics', параметры = dropdown_options, value='Годовая статистика', Placeholder='Выберите тип отчета' ) ]), html.Div(dcc.Dropdown(id='select-year', options=[{'label': i, 'value': i} для i вyear_list], значение = '2010' ) ), #TASK 2.3: Добавьте раздел для отображения вывода html.Div([ html.Div(id='output-container-yearly', className = 'диаграмма-сетка' ) ]) ]) #ЗАДАЧА 2.4: Создание обратных вызовов # Определите функцию обратного вызова для обновления входного контейнера на основе выбранной статистики @app.callback(Output(comComponent_id='select-year',Component_property='options'), Вход (comComponent_id = 'выпадающий список-статистика', компонент_свойство = 'значение') ) Защиту update_input_container (выбранная_статистика): if selected_statistics == 'Годовая статистика': return [{'label': i, 'value': i} для i в списке_годов] еще: возвращаться [] #Обратный вызов для построения графика # Определите функцию обратного вызова для обновления входного контейнера на основе выбранной статистики @app.callback( Output(comComponent_id='output-container-yearly',Component_property='дети'), [Input(comComponent_id='выбрать-год', компонент_свойство='значение'), Input(comComponent_id='выпадающий список-статистика', компонент_свойство='значение')] ) Защиту update_output_container (тип_отчета, входной_год): if report_type == 'Статистика периода рецессии': # Фильтрация данных по периодам рецессии рецессия_данные = данные[данные['Рецессия'] == 1] #ЗАДАЧА 2.5: Создание и отображение графиков для статистики отчета о рецессии # График 1. Продажи автомобилей колеблются в период рецессии (по годам). #use groupby для создания соответствующих данных для построения графиков Yearly_rec = рецессия_data.groupby('Год')['Automobile_Sales'].mean().reset_index() R_chart1 = dcc.Graph(figure = px.line(yearly_rec, х = 'Год', y = 'Продажи_автомобилей', title="Средние колебания продаж автомобилей в период рецессии" ) ) # График 2. Рассчитайте среднее количество проданных автомобилей по типам транспортных средств. # используйте groupby для создания соответствующих данных для построения графика средние_продажи = рецессия_данные.groupby('Тип_транспортного средства')['Продажи_автомобилей'].mean().reset_index() R_chart2 = dcc.Graph(figure = px.bar(average_sales, x = 'Тип_транспортного средства', y = 'Продажи_автомобилей', title="Среднее количество продаж автомобилей по транспортным средствам" ) ) # График 3. Круговая диаграмма, показывающая долю общих расходов по типам транспортных средств во время рецессии. # используйте groupby для создания соответствующих данных для построения графика exp_rec = спад_данных.groupby('Тип_транспортного средства')['Рекламные_расходы'].sum().reset_index() R_chart3 = dcc.Graph(figure = px.pie(exp_rec, значения = 'Рекламные расходы', имена = 'Тип_Транспортного средства', title="Круговая диаграмма, показывающая долю общих расходов по типам транспортных средств во время рецессии" ) ) # Постройте гистограмму 4, показывающую влияние уровня безработицы на тип транспортного средства и продажи. unemploy_sales = рецессия_data.groupby('Тип_транспортного средства')[['unemployment_rate','Automobile_Sales']].sum().reset_index() R_chart4 = dcc.Graph(figure = px.bar(unemploy_sales, x = 'уровень безработицы', y = 'Продажи_автомобилей', цвет = 'Тип_Транспортного средства' ) ) # возвращаться [ # html.Div(className='chart-item', Children=[html.Div(дети=R_chart1),html.Div(дети=R_chart3)]), # html.Div(className='chart-item', Children=[html.Div(дети=R_chart2),html.Div(дети=R_chart4)]) # ] возвращаться [ html.Div(className='chart-item', Children=R_chart1), html.Div(className='chart-item', Children=R_chart2), html.Div(className='chart-item', Children=R_chart3), html.Div(className='chart-item', Children=R_chart4) ] # ЗАДАЧА 2.6: Создание и отображение графиков для статистики годового отчета # Графики годового статистического отчета elif (input_year и report_type == 'Годовая статистика'): годовые_данные = данные[данные['Год'] == int(input_year)] # Постройте график 1. Годовые продажи автомобилей с использованием линейного графика за весь период. yas = data.groupby('Year')['Automobile_Sales'].mean().reset_index() Y_chart1 = dcc.Graph(figure=px.line(yas, х = 'Год', y = 'Продажи_автомобилей', title='Среднегодовые продажи автомобилей' ) ) # Постройте график 2. Общий объем продаж автомобилей за месяц, используя линейный график. mas = data.groupby('Месяц')['Automobile_Sales'].sum().reset_index() Y_chart2 = dcc.Graph(figure=px.line(mas, х = 'Месяц', y = 'Продажи_автомобилей', title='Среднемесячные продажи автомобилей' ) ) # Постройте гистограмму среднего количества автомобилей, проданных в течение данного года. avr_vdata =yearly_data.groupby('Месяц')['Automobile_Sales'].mean().reset_index() Y_chart3 = dcc.Graph(figure=px.bar(avr_vdata, х = 'Месяц', y = 'Продажи_автомобилей', title='Среднее количество автомобилей, проданных по типам транспортных средств за год {}'.format(input_year) ) ) # Постройте общие расходы на рекламу для каждого автомобиля с помощью круговой диаграммы. exp_data =yearly_data.groupby('Тип_транспортного средства')['Расходы_на рекламу'].sum().reset_index() Y_chart4 = dcc.Graph(figure = px.pie(exp_data, значения = 'Рекламные расходы', имена = 'Тип_Транспортного средства', title="Круговая диаграмма общих расходов по типам транспортных средств" ) ) #ЗАДАЧА 2.6: Возврат графиков для отображения годовых данных # возвращаться [ # html.Div(className='chart-item', Children=[html.Div(дети=Y_chart1),html.Div(дети=Y_chart3)]), # html.Div(className='chart-item', Children=[html.Div(дети=Y_chart2),html.Div(дети=Y_chart4)]) # ] возвращаться [ html.Div(className='chart-item', Children=Y_chart1), html.Div(className='chart-item', Children=Y_chart2), html.Div(className='chart-item', Children=Y_chart3), html.Div(className='chart-item', Children=Y_chart4) ] еще: return html.Div('Выберите тип отчета и год для просмотра статистики.') # Запустите приложение Dash если __name__ == '__main__': app.run_server(debug=True, use_reloader=False) Я пробовал отладку, распечатывая каждую часть кода, но это не похоже на явную ошибку, просто графические функции вызываются неправильно.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»