Как использовать стрелку в гео сюжете Plotly? - PullRequest
0 голосов
/ 06 февраля 2019

Я пытался нанести на график несколько команд НФЛ, но всякий раз, когда я пытался все время комментировать некоторые команды, текст переходит в угол сюжета, и я не мог приблизиться к фактическим точкам данных.

Ссылка: 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' )

Полученный график приведен здесь: enter image description here

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