4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
情节:如何结合make_subplots()和ff.create_distplot()? - IT屋...
来自 : www.it1352.com/17542...html 发布时间:2021-03-25

使用plotly创建多个子图既简单又优雅。考虑以下示例,该示例从一个数据帧并排绘制两个系列:



绘制:



\"在此处输入图片描述\"



代码:



 #从plotly导入
.subplots导入make_subplots
导入plotly.figure_factory as ff
import plotly.graph_objs as go
以pd
的价格导入大熊猫以np

的数字输入np.random.seed(123)
frame_rows = 40
n_plots = 6
#frame_columns = [\'v _\'+ str(e)表示列表中的e(range(1,n_plots + 1))]
frame_columns = [\'V_1\',\'V_2\']
df = pd.DataFrame(np.random.uniform(-10,10,size =(frame_rows,len(frame_columns))),
index = pd.date_range(\'1/1/2020\',period = frame_rows),
列= frame_columns)
df = df.cumsum()+ 100
df.iloc [0] = 100

#绘图设置
plot_rows = 1
plot_cols = 2
图= make_subplots(行= plot_rows,cols = plot_cols)

#绘图轨迹
fig.add_trace(go.Scatter(x = df.index,y = df [\'V_1\']),row = 1,col = 1)
fig.add_trace(go.Scatter(x = df。 index,y = df [\'V_2\']),row = 1,col = 2)


fig.show()


将 go.Scatter()对象替换为类似对象很简单:



图:



\"在此处输入图片描述\"



但是我似乎找不到一种将设置与 ff.create_distplot()结合的方法:



分布图:



\"在此处输入图片描述\"



带有distplot的代码:



 #从plotly导入
。subplots import make_subplots
import plotly.figure_factory as ff
import plotly.graph_objs as
import pandas pd
numpy as np

#data
np .random.seed(123)
frame_rows = 40
n_plots = 6
#frame_columns = [\'V _\'+ str(e)表示列表中的e(范围(1,n_plots + 1) )]
frame_columns = [\'V_1\',\'V_2\']
df = pd.DataFrame(np.random.uniform(-10,10,size =(frame_rows,len(frame_columns))),,
index = pd.date_range(\'1/1/2020\',period = frame_rows),
column = frame_columns)
df = df.cumsum()+ 100
df。 iloc [0] = 100

#绘图设置
plot_rows = 1
plot_cols = 2
图= make_subplots(行= plot_rows,cols = plot_cols)

#绘制轨迹
fig.add_trace(go.Scatter(x = df.index,y = df [\'V_1\']),行= 1,col = 1)
#fig.add_trace(go.Scatter(x = df.index,y = df [\'V_2\']),row = 1,col = 2)

#distplot
hist_data = [df [\'V_1\']。values,df [\'V_2\']。values]
group_labels = [\'Group 1\',\'Group 2\']
#fig2 = ff.create_distplot(hist_data,group_labels)

#结合make_subplots,go.Scatter和ff.create_distplot(
fig.add_trace(ff.create_distplot(hist_data,group_labels),row = 1,col = 2)

图。show()




原因似乎是 go.Scatter()和 ff.create_distplot()返回两种不同的数据类型; plotly.graph_objs.Scatter 和 plotly.graph_objs._figure.Figure 。而且可以肯定, make_subplots 不能与后者一起使用。还是有人知道解决这个问题的方法?



谢谢您的任何建议!


解决方案

事实证明您无法直接执行此操作,因为 make_subplots()不会接受 plotly.graph_objs._figure。直接将图对象作为 add_trace()的参数。但是,您可以构建一个 ff.create_distplot \"并\"窃取\" 该图中的数据并将其应用于接受 的 go.Histogram 和 go.Scatter()对象的组合 在 make_subplots()中。您甚至可以用地毯/边距图做同样的事情。



图:



\"在此处输入图片描述\"



代码:



 #从plotly导入
.subplots导入make_subplots
import plotly.figure_factory as ff
import plotly.graph_objs as go
import熊猫作为pd
导入numpy作为np

#数据
np.random.seed(123)
frame_rows = 40
n_plots = 6
#frame_columns = [列表中的e的\'\'V _\'+ str(e)(范围(1,n_plots + 1))]
frame_columns = [\'V_1\',\'V_2\']
df = pd .DataFrame(np.random.uniform(-10,10,size =(frame_rows,len(frame_columns))),
index = pd.date_range(\'1/1/2020\',period = frame_rows),
列= frame_columns)
df = df.cumsum()+ 100
df.iloc [0] = 100

#绘图设置
plot_rows = 2
plot_cols = 2
fig = make_subplots(行= plot_rows,cols = plot_cols)

#绘制轨迹
fig.add_trace(go.Scatter (x = df.index,y = df [\'V_1\']),row = 1,col = 1)
图.add_trace(go.Scatter(x = df.index,y = df [\'V_2\' ]),row = 2,col = 1)

#distplot
hist_data = [df [\'V_1\']。values,df [\'V_2\']。values]
group_labels = [\'Group 1\',\'Group 2\']
fig2 = ff.create_distplot(hist_data,group_labels)

fig.add_trace(go.Histogram(fig2 [\'data\'] [ 0],
marker_color =\'blue\'
),row = 1,col = 2)

fig.add_trace(go.Histogram(fig2 [\'data\'] [1 ],
marker_color =\'red\'
),row = 1,col = 2)

fig.add_trace(go.Scatter(fig2 [\'data\'] [2] ,
line = dict(color =\'blue\',width = 0.5)
),row = 1,col = 2)

图.add_trace(go.Scatter(fig2) [\'data\'] [3],
line = dict(col or =\'red\',width = 0.5)
),row = 1,col = 2)

#地毯/模仿ff.create_distplot
df [\'rug 1\'] = 1.1
df [\'rug 2\'] = 1
fig.add_trace(go.Scatter(x = df [\'V_1\'],y = df [\'rug 1\'],
mode =\'markers\',
marker = dict(color =\'blue\',symbol =\'line-ns-open\')
),row = 2,col = 2)

fig.add_trace(go.Scatter(x = df [\'V_2\'],y = df [\'rug 2\'],
mode =\'markers\',
marker = dict( color =\'red\',symbol =\'line-ns-open\')
),row = 2,col = 2)

#在rugplot
图上进行一些手动调整.update_yaxes(范围= [0.95,1.15],tickfont = dict(color =\'rgba(0,0,0,0)\',size = 14),row = 2,col = 2)
图.update_layout (showlegend = False)

fig.show()

本文地址:IT屋 情节:如何结合make_subplots()和ff.create_distplot()?

本文链接: http://dfdist.immuno-online.com/view-762426.html

发布于 : 2021-03-25 阅读(0)