Я наткнулся на этот вопрос после того, как ответил на другой из ваших вопросов, и подумал, что это интересно.
Это то, что вам нужно?
Ключевые элементы:
Ключевые элементы создания приподнятого аннотации:
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 заголовок и аннотации будут перекрываться.