python: 多分割小提琴图叠加
python: multiple split violine plot overlayed
我有一组样本可以用小提琴图来说明。这是 plotly.
的示例
我想要类似的东西,但在小提琴的左侧有多个“蓝色”分布。很可能分布下的区域是半透明和重叠的。
有什么策划的建议吗?它不需要情节。
谢谢。
您可以使用 fig.add_trace
添加任意数量的跟踪。遵循 plotly 中的相同示例:
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/violin_data.csv")
fig = go.Figure()
fig.add_trace(go.Violin(x=df['day'][ df['smoker'] == 'Yes' ],
y=df['total_bill'][ df['smoker'] == 'Yes' ],
legendgroup='Yes', scalegroup='Yes', name='Yes',
side='negative',
line_color='blue')
)
fig.add_trace(go.Violin(x=df['day'][ df['smoker'] == 'No' ],
y=df['total_bill'][ df['smoker'] == 'No' ],
legendgroup='No', scalegroup='No', name='No',
side='negative',
line_color='green')
)
fig.add_trace(go.Violin(x=df['day'][ df['smoker'] == 'No' ],
y=df['total_bill'][ df['smoker'] == 'No' ],
legendgroup='No', scalegroup='No', name='No',
side='positive',
line_color='orange')
)
fig.update_traces(meanline_visible=True)
fig.update_layout(violingap=0, violinmode='overlay')
fig.show()
将在左侧添加另一条轨迹:
我有一组样本可以用小提琴图来说明。这是 plotly.
的示例我想要类似的东西,但在小提琴的左侧有多个“蓝色”分布。很可能分布下的区域是半透明和重叠的。
有什么策划的建议吗?它不需要情节。
谢谢。
您可以使用 fig.add_trace
添加任意数量的跟踪。遵循 plotly 中的相同示例:
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/violin_data.csv")
fig = go.Figure()
fig.add_trace(go.Violin(x=df['day'][ df['smoker'] == 'Yes' ],
y=df['total_bill'][ df['smoker'] == 'Yes' ],
legendgroup='Yes', scalegroup='Yes', name='Yes',
side='negative',
line_color='blue')
)
fig.add_trace(go.Violin(x=df['day'][ df['smoker'] == 'No' ],
y=df['total_bill'][ df['smoker'] == 'No' ],
legendgroup='No', scalegroup='No', name='No',
side='negative',
line_color='green')
)
fig.add_trace(go.Violin(x=df['day'][ df['smoker'] == 'No' ],
y=df['total_bill'][ df['smoker'] == 'No' ],
legendgroup='No', scalegroup='No', name='No',
side='positive',
line_color='orange')
)
fig.update_traces(meanline_visible=True)
fig.update_layout(violingap=0, violinmode='overlay')
fig.show()
将在左侧添加另一条轨迹: