Задать цвета графиков в Дашборде
Подскажите, как можно задать каждой линии и каждому бару в графиках дашборда свой цвет параметром html? И как вообще в дашбордах регулировать графики? Например, задать минимальное и максимальное значение оси У, подвигать метки осей (развернуть на n градусов), настроить легенду и тд
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import os
import numpy as np
from dash.dependencies import Output, Input
external_stylesheets = [
{
"href": "mystyle.css"
"family=Lato:wght@400;700&display=swap",
"rel": "stylesheet",
},
]
data = pd.read_excel("Dash.xlsx", sheet_name='Лист1')
data.sort_values("names", inplace=True)
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(
children=[
html.Div(
children=[
html.P(children="??", className="header-emoji"),
html.H1(
children="Анализ", className="header-title"
),
html.P(
children="Отчёт.",
className="header-description",
),
],
className="header",
),
html.Div(
children=[
html.Div(
children=[
html.Div(children="Группы", className="menu-title"),
dcc.Dropdown(
id="name-filter",
options=[
{"label": names, "value": names}
for names in np.sort(data.names.unique())
],
value=(data["names"]),
clearable=False,
className="dropdown",
),
]
),
],
className="menu",
),
html.Div(
children=[
html.Div(
children=dcc.Graph(
id="competence_chart", config={"displayModeBar": False},
),
className="card",
style={'width': '0%', 'hight': '60%', 'float': 'left', 'display': 'inline-block'},
),
html.Div(
children=dcc.Graph(
id="efficiency_chart", config={"displayModeBar": False},
),
className="card",
style={'width': '100%', 'hight': '60%', 'float': 'center', 'display': 'inline-block', 'pallette':"#8FA93A"},
),
],
className="wrapper",
),
]
)
@app.callback(
[Output("competence_chart", "figure"), Output("efficiency_chart", "figure")],
[Input("name-filter", "value")],
)
def update_charts(names):
mask = (
(data.names == names)
)
filtered_data = data.loc[mask, :]
competence = {
"data": [
{'x': filtered_data["names"], 'y': filtered_data["Первые"], 'type': 'bar', 'name': 'Первые'},
{'x': filtered_data["names"], 'y': filtered_data["Вторые"], 'type': 'bar', 'name': 'Вторые'},
{'x': filtered_data["names"], 'y': filtered_data["Третьи"], 'type': 'bar', 'name': 'Третьи'},
],
"layout": {"title": "Распределение"},
}
efficiency = {
"data": [
{"x": filtered_data["names"], "y": filtered_data["Первые"], "type": "lines", },
{"x": filtered_data["names"], "y": filtered_data["Вторые"], "type": "lines",},
{"x": filtered_data["names"], "y": filtered_data["Третьи"], "type": "lines",},
{"x": filtered_data["names"], "y": filtered_data["Четвертые"], "type": "lines",},
{"x": filtered_data["names"], "y": filtered_data["Пятые"], "type": "lines",},
],
"layout": {"title": "На графике представлены баллы."},
}
return competence, efficiency
if __name__ == "__main__":
app.run_server(debug=True)
Данные здесь https://docs.google.com/spreadsheets/d/1gOrxADX0YcCV_YATfx1k7ha--BfN0FAkeslZiNc6Plw/edit?usp=sharing