Как заставить сюжетную полосу отображать цвета для стеков, а не для следов - PullRequest
0 голосов
/ 11 марта 2020

Я хочу раскрасить стеки столбцов в соответствии со столбцом в каждом кадре данных, который называется 'types', но я не знаю, где установить этот аргумент (в API Plotly Express есть параметр color).

Странно то, что Plotly уже помечает планку стеками, но [как и должно быть] окрашивает их все одинаково, в соответствии со следом:

from plotly.subplots import make_subplots
import plotly.graph_objects as go

fig = make_subplots(rows=1, cols=2)
fig.add_trace(go.Bar(x = grouped_A["Working Days"], y = grouped_A["Total"], 1, 1)
fig.add_trace(go.Bar(x = grouped_B["Working Days"], y = grouped_B["Total"], 1, 2)

fig.show()

enter image description here

1 Ответ

1 голос
/ 11 марта 2020

Вы можете использовать API Plotly Express для создания графиков, а затем добавить их к вспомогательным графикам.

from plotly.subplots import make_subplots
import plotly.graph_objects as go
import plotly.express as px

fig = make_subplots(rows=1, cols=2)
bar1 = px.bar(grouped_A, x = "Working Days", y = "Total", color="types")
bar2 = px.bar(grouped_B, x = "Working Days", y = "Total", color="types")

for trace in bar1.data:
    fig.add_trace(trace, 1, 1)
for trace in bar2.data:
    fig.add_trace(trace, 1, 2)


fig.update_layout(barmode="stack")
fig.show()

Кроме того, если вы хотите, чтобы «типы» имели одинаковые цвета в каждом подплощадке, вы можете добавить цветовое отображение в качестве параметра для px.bar ()

color_discrete_map=color_map
...