Я создан для вашего лучшего понимания:
# import what we need
import plotly
import plotly.graph_objs as go
import pandas as pd
# Create DataFrame
df = pd.DataFrame({"A":[1,1,1,0],
"B":[1,1,0,0],
"C":[1,0,0,0]
})
# Convert names of columns in a list
traceslist = df.columns.tolist()
# Check list
print(traceslist)
# Create a function that will create as many traces for us as we need
def tracing(column):
trace = go.Bar(
x = df.index,
y = df[column],
# Parameters above specify what you would see if hover on any column
name = column,
text=column,
textposition='auto',
hoverinfo="x+y")
return trace
# Create data
data = []
# Fill out data with our traces
for i in range(len(traceslist)):
eachtrace = tracing(traceslist[i])
data.append(eachtrace)
# Optional: create layout
layout = go.Layout(
# Set title to plot
title = "Bam!",
# Choose one of the barmode below and comment another
barmode="stack",
#barmode="group"
)
# Create figure with all we need to plot
fig = go.Figure(data=data, layout=layout)
# Use offline plot without connection to plotly site
plotly.offline.plot(fig, filename='Bam.html')
В приведенном выше коде просто используйте функцию для создания traces
.И используя for
цикл после него, чтобы получить все traces
в data
.Какую разницу между двумя barmode
параметрами вы можете увидеть здесь:
1) barmode="stack"
;
2) barmode="group"
.
Вы можете создавать гораздо более красивые графики (см. Официальные документы для гистограмма ), просто укажите дополнительные параметры.