这些资源展示了如何从一个Pandas数据框获取数据,并在绘图仪上绘制不同的列子块。我感兴趣的是从不同的数据帧创建图形,并将它们绘制成与子块相同的图形。这有可能是阴谋吗?
https://plot.ly/python/subplots/
https://plot.ly/pandas/subplots/
我从这样的数据框创建每个图形:
import pandas as pd
import cufflinks as cf
from plotly.offline import download_plotlyjs, plot,iplot
cf.go_offline()
fig1 = df.iplot(kind='bar',barmode='stack',x='Type',
y=mylist,asFigure=True)
编辑: 下面是一个基于Naren反馈的示例:
创建数据帧:
a={'catagory':['loc1','loc2','loc3'],'dogs':[1,5,6],'cats':[3,1,4],'birds':[4,12,2]}
df1 = pd.DataFrame(a)
b={'catagory':['loc1','loc2','loc3'],'dogs':[12,3,5],'cats':[4,6,1],'birds':[7,0,8]}
df2 = pd.DataFrame(b)
情节只会显示狗的信息,而不是鸟或猫的信息:
fig = tls.make_subplots(rows=2, cols=1)
fig1 = df1.iplot(kind='bar',barmode='stack',x='catagory',
y=['dogs','cats','birds'],asFigure=True)
fig.append_trace(fig1['data'][0], 1, 1)
fig2 = df2.iplot(kind='bar',barmode='stack',x='catagory',
y=['dogs','cats','birds'],asFigure=True)
fig.append_trace(fig2['data'][0], 2, 1)
iplot(fig)
您可以得到一个仪表板,其中包含多个图表,每个图表旁边都有图例:
结果:
新答案:
我们需要在每一个动物之间循环,并附加一个新的轨迹来生成你所需要的。这将提供我所希望的输出。
输出:
旧答案:
这就是解决办法
说明:
Plotly tools有一个创建子块的子块函数,您应该阅读文档了解更多详细信息here。所以我首先使用袖扣来创建条形图的图形。要注意的一件事是袖扣创建和对象的数据和布局。Plotly只接受一个布局参数作为输入,因此我只从袖扣图中获取数据参数,并将其附加到make_suplots对象。所以图append_trace()第二个参数是行号,第三个参数是列号
如果你想在子批次中添加一个公共布局,我建议你这样做
甚至
因此,在第一个打印示例中,我访问布局对象的各个参数并对其进行更改,您需要查看布局对象属性以供参考。
在打印前的第二个示例中,我使用袖扣生成的布局更新了图形的布局这将生成与袖扣中相同的输出。
您也可以使用袖扣尝试以下操作:
这应该给你:
相关问题 更多 >
编程相关推荐