我想在图中创建分组( barmode =' group' )条形图子图。现在的问题是,情节并没有创建条形图作为痕迹。而是将分组条形图创建为条形轨迹列表。因此,我不知道如何创建包含分组条形图作为子图的图形(即使用 figure.append_trace()添加分组条形图。)
例如,如何使用this sample中创建的条形图创建子图:
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[20, 14, 23],
name='SF Zoo'
)
trace2 = go.Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[12, 18, 29],
name='LA Zoo'
)
data = [trace1, trace2]
layout = go.Layout(
barmode='group'
)
fig = go.Figure(data=data, layout=layout)
plot_url = py.plot(fig, filename='grouped-bar')
答案 0 :(得分:3)
YES! plot.ly的新手并且遇到了这个问题,并且如我的评论所述,由于各种原因,我无法在pandas / matplotlib中进行此操作。但是通过子图的魔力,您实际上可以通过将它们一起进行子绘图来重新创建多迹图。
import plotly.plotly as py
import plotly.graph_objs as go
from plotly import tools
trace1 = Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[20, 14, 23],
name='SF Zoo'
)
trace2 = Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[12, 18, 29],
name='LA Zoo'
)
trace3 = Scatter(
x=['giraffes', 'orangutans', 'monkeys']
,y=[33,20,17]
,name='subplots ftw'
)
fig = tools.make_subplots(rows=2, cols=1, shared_xaxes=True)
fig.append_trace(trace3, 1,1)
fig.append_trace(trace1, 2, 1)
fig.append_trace(trace2,2,1)
fig['layout'].update(height=600, width=600)
iplot(fig)
答案 1 :(得分:0)
我从来没有使用过情节包,但是看起来你看起来很简单,使用matplotlib。以下是将分组条形图显示为子图的极小示例。如果这不是你所要求的,请告诉我。
import numpy as np
import matplotlib.pyplot as plt
# First subplot
plt.subplot(2, 1, 1)
x = np.linspace(0, 10)
y = np.sin(np.pi * x)
plt.plot(x, y)
# Second subplot
plt.subplot(2, 1, 2)
titles = ('Canada', 'US', 'England', 'Other')
y_pos = np.arange(len(titles))
width = 0.2
bar_height1 = [6,5,7,2]
bar_height2 = [x+1 for x in bar_height1]
plt.bar(y_pos, bar_height1, width, align='center', alpha=0.8, color='r')
plt.bar(y_pos+width, bar_height2, width, align='center', alpha=0.8, color='b')
plt.xticks(y_pos + width/2, titles)
# Show the plots
plt.show()