Предлагаемая ссылка в комментариях действительно имеет несколько ценных ресурсов, но они не будут отвечать на ваши вопросы напрямую.iplot()
использует фрейм данных pandas в качестве входных данных и создает столбчатую диаграмму с накоплением.Вот подход, который позволит вам сделать именно это, хотя и без использования df.iplot()
Во-первых, сюжет:
Теперь код
Мое предложение основано на примере, найденном по адресу: plot.ly / pandas / bar-charts .Как вы увидите, это пример, который построен на фрейме данных pandas - так же, как df.iplot()
.Вы можете просто взять серию или «трассировку» из уложенных столбцов и отобразить их в виде линии, изменив
go.Bar(x=df['x'],
y=df['y4'])
на:
go.Scatter(x=df['x'],
y=df['y4'])
Я также добавил несколькоэлементы, чтобы упростить отображение результатов в автономном режиме в блокноте Jupyter.Также обратите внимание, что я изменил последнюю строку с py.iplot(fig, filename='pandas-bar-chart-layout')
на iplot(fig, filename='pandas-bar-chart-layout')
Полный фрагмент:
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
import pandas as pd
import numpy as np
N = 20
x = np.linspace(1, 10, N)
y = np.random.randn(N)+3
y2 = np.random.randn(N)+6
y3 = np.random.randn(N)+9
y4 = np.random.randn(N)+12
df = pd.DataFrame({'x': x, 'y': y, 'y2':y2, 'y3':y3, 'y4':y4})
df.head()
data = [
go.Bar(
x=df['x'], # assign x as the dataframe column 'x'
y=df['y']
),
go.Bar(
x=df['x'],
y=df['y2']
),
go.Bar(
x=df['x'],
y=df['y3']
),
go.Scatter(
x=df['x'],
y=df['y4']
)
]
layout = go.Layout(
barmode='stack',
title='Stacked Bar with Pandas'
)
fig = go.Figure(data=data, layout=layout)
# IPython notebook
iplot(fig, filename='pandas-bar-chart-layout')