我正在尝试使用相同数据的两个子图创建一个数字:
1)小提琴情节占人数的1/4
2)散点图,填充图中剩余的3/4
这两个数字应该共享y轴标签。
我设法使用Matplotlib创建了这个,但需要一个交互式版本 如何将Plotly Violin子图与Plotly Scatter子图组合在一个图中?
我从未尝试过的事情(RANKS和SCORES是数据):
import plotly.figure_factory as ff
import plotly.graph_objs as go
from plotly import tools
fig = tools.make_subplots(rows=1, cols=2, shared_yaxes=True)
vio = ff.create_violin(SCORES, colors='#604d9e')
scatter_trace = go.Scatter(x = RANKS, y = SCORES, mode = 'markers')
# How do I combine these two subplots?
谢谢!
答案 0 :(得分:1)
Plotly的小提琴情节是散点图的集合。因此,您可以将每个分别添加到子图中,并将散点图添加到另一个子图中。
import plotly
import numpy as np
#get some pseudorandom data
np.random.seed(seed=42)
x = np.random.randn(100).tolist()
y = np.random.randn(100).tolist()
#create a violin plot
fig_viol = plotly.tools.FigureFactory.create_violin(x, colors='#604d9e')
#create a scatter plot
fig_scatter = plotly.graph_objs.Scatter(
x=x,
y=y,
mode='markers',
)
#create a subplot with a shared y-axis
fig = plotly.tools.make_subplots(rows=1, cols=2, shared_yaxes=True)
#adjust the layout of the subplots
fig['layout']['xaxis1']['domain'] = [0, 0.25]
fig['layout']['xaxis2']['domain'] = [0.3, 1]
fig['layout']['showlegend'] = False
#add the violin plot(s) to the 1st subplot
for f in fig_viol.data:
fig.append_trace(f, 1, 1)
#add the scatter plot to the 2nd subplot
fig.append_trace(fig_scatter, 1, 2)
plotly.offline.plot(fig)