На этой картинке разрыв между ними слишком велик. С другой стороны, в сюжетном коде этот разрыв меньше. Как мы можем это сделать?
Схема моего кода сюжетный пример кода мой код
import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
data = {'one': [0.517970, 0.335520, 0.179993, 0.049795, -0.056827],
'two': [0.457973, 0.283992, 0.136433, 0.013717, -0.085876]}
df = pd.DataFrame(data)
fig = go.Figure()
fig.add_trace(go.Violin(x=df['one'],
name='one',
meanline_visible=True,
side='positive',
opacity=1))
fig.add_trace(go.Violin(x=df['two'],
name='two',
meanline_visible=True,
side='positive',
opacity=1))
fig.show()
сюжетный пример кода
import plotly.graph_objects as go
from plotly.colors import n_colors
import numpy as np
np.random.seed(1)
# 12 sets of normal distributed random data, with increasing mean and standard deviation
data = (np.linspace(1, 2, 12)[:, np.newaxis] * np.random.randn(12, 200) +
(np.arange(12) + 2 * np.random.random(12))[:, np.newaxis])
colors = n_colors('rgb(5, 200, 200)', 'rgb(200, 10, 10)', 12, colortype='rgb')
fig = go.Figure()
for data_line, color in zip(data, colors):
fig.add_trace(go.Violin(x=data_line, line_color=color))
fig.update_traces(orientation='h', side='positive', width=3, points=False)
fig.update_layout(xaxis_showgrid=False, xaxis_zeroline=False)
fig.show()
Спасибо. Я хотел бы подтвердить одну вещь: если я использую width
, правильно ли я понимаю, что высота каждой фигуры отображается в нормализованном состоянии, чтобы она была определенного размера?
Кроме того, когда две диаграммы перекрываются, одна находится под двумя, но это отличается от примера кода сюжета, поэтому я хочу, чтобы тот, у которого наименьшее число, был сверху, как в примере кода сюжета.
Порядок рисования, показанный на рисунке, должен быть расположен спереди назад? Ваши образцы и эталонные примеры также нарисованы спереди назад?
Вы можете добиться результата, похожего на примеры в документации, изменив атрибут width
трасс, например:
fig.update_traces(width = 4)
import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
data = {'one': [0.517970, 0.335520, 0.179993, 0.049795, -0.056827],
'two': [0.457973, 0.283992, 0.136433, 0.013717, -0.085876]}
df = pd.DataFrame(data)
fig = go.Figure()
fig.add_trace(go.Violin(x=df['one'],
name='one',
meanline_visible=True,
side='positive',
opacity=1))
fig.add_trace(go.Violin(x=df['two'],
name='two',
meanline_visible=True,
side='positive',
opacity=1))
fig.update_traces(width = 4)
fig.show()
Регулировка высоты гор уменьшит интервал. Попробуйте добавить следующий код из примера кода в справочнике.
fig.update_traces(orientation='h', side='positive', width=5, points=False)