Как получить сгенерированный диапазон оси x и оси y на графике? - PullRequest
3 голосов
/ 26 мая 2020

У меня очень простая пузырьковая диаграмма, см. Ниже. единственное, что мне нужно, это иметь возможность получить диапазон (или минимальное и максимальное) или сгенерированные оси x и y.

trace = go.Scatter(
    x=df_test['total_points_mean'],
    y=df_test['total_points_std'],
    mode='markers',
    text=df_test['play_maker'],
    marker=dict(size=df_test['week_nunique'],
                color = df_test['week_nunique'],
                showscale=True)
)

layout = go.Layout(title='Scatter Plot')
fig = go.Figure(data=[trace],layout=layout)

Из полученного графика минимальное и максимальное значения оси x кажется, около ~ 10 и ~ 29, но мне нужен способ сгенерировать точное значение диапазона оси.

enter image description here

Есть ли способ для доступа к сгенерированному диапазону осей?

1 Ответ

2 голосов
/ 27 мая 2020

Получение диапазона оси из графического изображения невозможно в реализации python. Вы можете получить диапазон, только если вы укажете диапазон оси в своем макете (но тогда он вам действительно не нужен).

Итак, если вы попробуете print(fig.layout.xaxis.range), вы получите None.

Если вам нужны ограничения, вам нужно сделать свои собственные и применить их к макету:

  1. получить минимальное и максимальное значения x: xmin, xmax
  2. дополните эти значения некоторым коэффициентом: xlim = [xmin*.95, xmax*1.05]
  3. обновите макет: fig.update_layout(xaxis=dict(range=[xlim[0],xlim[1]]))

Теперь, если вы попробуете print(fig.layout.xaxis.range), вы получите диапазон оси.

Это меня очень беспокоило, поэтому мне пришлось копнуть глубже, заслуга @Emmanuelle на форумах plotly за подтверждение этой реальности.

...