python 创建子图_在python中以绘图方式创建子图

I am fairly new to python and ploty (<3 months of actual coding at this point).

I am trying to create subplots in plotly. I have created graphs in plotly using the code below(code snippets attached below as well), but I can't seem to get them to work using subplots

I create many of these types of data graphs and any help in tightening my code would be much appreciated.

Here is a sample dataset (below is the only way I know how to line it up on this site??) [NOTE: it is not the exact same dataset I used to generate the graphs below, but close enough]:

subjid_raw studyarm visit pn_chg fx_chg totw_chg

20001 B 02_ASCRN -1 -28 -30

20001 B 02_DAY001 0 0 0

20001 B 02_DAY029WK4 -12 -56 -76

20001 B 02_DAY092WK13 -17 -61 -88

20001 B 02_DAY183WK26 -19 -64 -93

20001 B 02_DAY274WK39 -13 -45 -65

20001 B 02_ZEOS -22 -70 -102

20001 B MTH06 -22 -74 -108

20001 B MTH12 -23 -74 -109

20005 C 02_ASCRN 3 8 12

20005 C 02_DAY001 0 0 0

20005 C 02_DAY029WK4 -20 -80 -112

20005 C 02_DAY092WK13 -16 -68 -95

20005 C 02_DAY183WK26 -22 -69 -99

20005 C 02_DAY274WK39 -19 -71 -103

20005 C 02_ZEOS -4 -26 -36

20005 C MTH06 -17 -76 -105

20005 C MTH12 -22 -72 -106

20007 D 02_ASCRN -13 2 -12

20007 D 02_DAY001 0 0 0

20007 D 02_DAY029WK4 6 -15 -45

20007 D 02_DAY092WK13 -10 -26 -39

20007 D 02_DAY183WK26 -19 -72 -97

20007 D 02_DAY274WK39 -4 -30 -35

20007 D 02_ZEOS -25 -71 -103

20007 D MTH12 -24 -85 -117

20010 A 02_ASCRN -5 -2 -6

20010 A 02_DAY001 0 0 0

20010 A 02_DAY029WK4 -24 -75 -102

20010 A 02_DAY092WK13 -3 1 -1

20010 A 02_DAY183WK26 -2 7 6

20010 A 02_DAY274WK39 1 9 13

20010 A 02_ZEOS -6 -1 -7

NEED: I would like to have the subplots show as a subplot with two rows and two columns (although I am not sure that will work given there are only three columns of data to graph??)

import pandas as pd ##(version: 0.22.0)

import numpy as np ##(version: 1.14.0)

import plotly.graph_objs as go

import plotly.tools as tls

from plotly.offline import *

import cufflinks as cf ##(version: 0.12.1)

init_notebook_mode(connected=True)

cf.go_offline()

dummy_data = pd.read_csv("desktop\dummy_data.csv")

a = dummy_data.groupby(['studyarm', 'visit']) ['fx_chg'].mean().unstack('studyarm').drop(['02_UNSCH','ZEOS'])

b = dummy_data.groupby(['studyarm', 'visit']) ['pn_chg'].mean().unstack('studyarm').drop(['02_UNSCH','ZEOS'])

c = dummy_data.groupby(['studyarm', 'visit']) ['totw_chg'].mean().unstack('studyarm').drop(['02_UNSCH','ZEOS'])

fig3 = a.iplot(kind='line', yTitle='Score', title='Dummy Data1', mode=markers, asFigure=True)

fig3['data'][0]['marker']['symbol'] = 'hexagram-open-dot'

fig3['data'][1]['marker']['symbol'] = 'circle-dot'

fig3['data'][2]['marker']['symbol'] = 'star-open-dot'

fig3['data'][3]['marker']['symbol'] = 'square'

iplot(fig3, filename='simple-plot')

fig4 = b.iplot(kind='line', yTitle='Score', title='Dummy Data2', mode=markers, asFigure=True)

fig4['data'][0]['marker']['symbol'] = 'hexagram-open-dot'

fig4['data'][1]['marker']['symbol'] = 'circle-dot'

fig4['data'][2]['marker']['symbol'] = 'star-open-dot'

fig4['data'][3]['marker']['symbol'] = 'square'

iplot(fig4, filename='simple-plot')

fig5 = c.iplot(kind='line', yTitle='Score', title='Dummy Data3', mode=markers, asFigure=True)

fig5['data'][0]['marker']['symbol'] = 'hexagram-open-dot'

fig5['data'][1]['marker']['symbol'] = 'circle-dot'

fig5['data'][2]['marker']['symbol'] = 'star-open-dot'

fig5['data'][3]['marker']['symbol'] = 'square'

iplot(fig5, filename='simple-plot')

## I have tried all forms of

##fig = tls.make_subplots(rows=n, cols=n) ##but it just shows graphs as blank?

Any help or nudge in the right direction would be appreciated.

解决方案

You could just use cufflinks' subplot function. As far as I know there is no documentation for it.

cf.subplots([fig3, fig4, fig5],

shape=(2,2)).iplot()

Would give you:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值