Python: создать пространство аннотаций над графиком в Plotly - PullRequest
1 голос
/ 28 мая 2020

Я хотел бы создать дополнительное пространство для аннотаций на графике (см. Зеленую область на прикрепленном изображении). На данный момент ось Y определяет мою высоту участка. Могу ли я сделать sh график за пределом y.max / скрыть ось Y после определенной точки (отмеченной красным на изображении)? Я стараюсь избегать попадания оси в «раздел комментариев» (зеленый).

Спасибо!

введите здесь описание изображения

введите описание изображения здесь

1 Ответ

1 голос
/ 17 августа 2020

Я наткнулся на этот вопрос после того, как ответил на другой из ваших вопросов, и подумал, что это интересно.

Это то, что вам нужно?

Ключевые элементы:

Ключевые элементы создания приподнятого аннотации:

  • xref и yref установлены на 'paper' , таким образом, используя график фон для xy координат, а не значения данных графика
  • Использование> 1.00 для y позиционирования
  • layout['margin'] верх установите значение для создания верхнего поля, тем самым сдвинув область графика вниз

Пример кода:

Это действительно намного проще, чем кажется.

import numpy as np
from plotly.offline import iplot

# Create the dataset.
n = 360
x = np.arange(n)
y = [np.sin(i*(np.pi/180)) for i in range(n)]

# Plot the sin wave.
data = []
data.append({'x': x,
             'y': y})

# Create the annotations.
notes = []
notes.append({'text': ('An annotation at the top of the graph.<br><br>'
                       'And some more rambling text to take up some '
                       'more space on the graph to represent<br>'
                       'a longer annotation, just because we can.<br><br>'
                       'And one more for good measure.'),
              'x': 0.00,
              'y': 1.60,
              'xref': 'paper',
              'yref': 'paper',
              'showarrow': False,
              'align': 'left'})
notes.append({'text': 'Elevated Graph Annotation Example',
              'x': 0.00,
              'y': 1.15,
              'xref': 'paper',
              'yref': 'paper', 
              'showarrow': False,
              'font': {'size': 18}})

# Setup the layout.
layout = {}
layout['annotations'] = notes
layout['margin'] = {'t': 175}

# Plot the data. (May also use `plot` rather than `iplot`)
iplot({'data': data, 'layout': layout})

Примечание:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...