Переключение в тёмный режим
Тёмный режим — популярная функция в программных продуктах и на веб-страницах: он меньше нагружает зрение и нравится многим пользователям. В тёмном режиме фон элементов — чёрный, а цвет текста — белый.
Ваша задача — взять дашборд из предыдущего упражнения и перевести его на «тёмную сторону». Для этого нужно изменить цвет фона и текста на графике и в HTML-элементах.
Большая часть дашборда уже готова, включая создание необходимых графиков. Вам остаётся выполнить ключевые шаги для перехода в тёмный режим. В этом упражнении можно использовать названия цветов вместо RGB-кодов.
Это упражнение является частью курса
Создание дашбордов с помощью Dash и Plotly
Инструкции к упражнению
- Задайте цвет шрифта столбчатой диаграммы в соответствии с тёмным режимом после строки
10(фон —black, текст —white). - Добавьте новый логотип с помощью переменной
logo_linkпосле строки16.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
from dash import Dash, dcc, html
import plotly.express as px
import pandas as pd
ecom_sales = pd.read_csv('/usr/local/share/datasets/ecom_sales.csv')
logo_link = 'https://assets.datacamp.com/production/repositories/5893/datasets/1c95273e21a54b5ca48e0b03cc0c1faeafb3d7cd/e-comlogo_white.png'
ecom_category = ecom_sales.groupby(['Major Category','Minor Category']).size().reset_index(name='Total Orders').sort_values(by='Total Orders', ascending=False).reset_index(drop=True)
top_cat = ecom_category.loc[0]['Minor Category']
ecom_bar = px.bar(ecom_category, x='Total Orders', y='Minor Category', color='Major Category')
# Set the font color of the bar chart
ecom_bar.update_layout({'yaxis':{'dtick':1, 'categoryorder':'total ascending'}, 'paper_bgcolor':'black', 'font': {'color':'____'}})
app = Dash()
app.layout = [
# Add the new logo
html.Img(
src=____,
style={'width':'165px', 'height':'50px'}),
html.H1('Top Sales Categories'),
dcc.Graph(
figure=ecom_bar,
style={'width':'500px', 'height':'350px', 'margin':'auto'}),
html.Br(),
html.Span(children=[
'The top category was: ',
html.B(top_cat),
html.Br(),
html.I('Copyright E-Com INC')])
]
if __name__ == '__main__':
app.run(debug=True)