Я пытался нанести на график несколько команд НФЛ, но всякий раз, когда я пытался все время комментировать некоторые команды, текст переходит в угол сюжета, и я не мог приблизиться к фактическим точкам данных.
Ссылка: https://plot.ly/python/text-and-annotations/#styling-and-coloring-annotations
Я пытался менять значения x и y более получаса более чем на полчаса, независимо от того, что я делал, все время, пока прямоугольник идет в угол графика, и яне удалось сделать это внутри карты США.
Qn: Как аннотировать синюю точку данных знаком стрелки?
Qn2: Как исправить "UserWarning: попробуйте вместо этого использовать IPython.display.IFrame "
Вот мой код и график:
import pandas as pd
import numpy as np
from IPython.display import IFrame
import plotly.plotly as py
%matplotlib inline
df = pd.DataFrame({'latitude': [42.7,25.9,42.1,40.8],
'longitude': [-78,-80,-71,-74],
'color': range(4)})
annotations=[
dict(
x=-74,
y=40.8,
xref='latitude',
yref='longitude',
text='Patriots',
showarrow=True,
font=dict(
family='Courier New, monospace',
size=16,
color='#ffffff'
),
align='center',
arrowhead=2,
arrowsize=1,
arrowwidth=2,
arrowcolor='#636363',
ax=0,
ay=-2,
bordercolor='#c7c7c7',
borderwidth=2,
borderpad=4,
bgcolor='#ff7f0e',
opacity=0.8
)
]
marker = dict(
size = 8,
opacity = 0.8,
reversescale = True,
autocolorscale = False,
symbol = 'square',
line = dict(
width=1,
color='rgba(102, 102, 102)'
),
colorscale = 'Jet',
cmin = 0,
color = df['color'],
cmax = 4,
colorbar=dict(
title="NFL Teams"
)
)
geo = dict(
scope='usa',
projection=dict( type='albers usa' ),
showland = True,
landcolor = "rgb(250, 250, 250)",
subunitcolor = "rgb(217, 217, 217)",
countrycolor = "rgb(217, 217, 217)",
countrywidth = 0.5,
subunitwidth = 0.5
)
data = [ dict(
type = 'scattergeo',
locationmode = 'USA-states',
lon = df['longitude'],
lat = df['latitude'],
text = 'text' ,
mode = 'markers',
marker = marker
)]
layout = dict(
title = '',
colorbar = True,
annotations= annotations,
geo = geo
)
fig = dict( data=data, layout=layout )
py.iplot( fig, validate=False, filename='file1' )
Полученный график приведен здесь: