Exemplo n.º 1
0
def mapa():

    df = df_inicial[['paises', 'artistas', 'ouvintes']]
    df = df.sort_values(by='ouvintes', ascending=False)

    # LÊ O CSV, DETERMINA AS COLUNAS A SEREM UTILIZADAS E ORDENA POR OUVINTES

    pais = df['paises']
    paises = []

    for i in range(len(df)):
        if pais[i] not in paises and type(pais[i]) == str:
            paises.append(pais[i])
# EVITA O APARECIMENTO DE NaN E FAZ COM QUE PAISES APAREÇAM APENAS UMA VEZ

    artista = df['artistas']
    artistas = []

    for i in range(len(df)):
        if artista[i] not in artistas:
            artistas.append(artista[i])

    paises[paises.index(
        'Soviet Union'
    )] = 'Russia'  # TROCA O NOME "SOVIET UNION" QUE APARECE NO CSV PARA RUSSIA

    trace = go.Scattergeo(
        fill='toself',  # PERMITE QUE A COR DA CAIXA DE TEXTO MUDE
        fillcolor='#252e3f',  # DETERMINA A COR DA CAIXA DE TEXTO
        locationmode=
        'country names',  # DETERMINA O MODO EM QUE VÃO SER ENCONTRADOS 
        # AS LOCALIZAÇÕES QUE APARECEM NA VARIÁVEL "LOCATIONS"
        locations=
        paises,  # DETERMINA AS LOCALIZAÇÕES QUE APARECEM NO MAPA, NO CASO OS PAÍSES
        text=artistas,  # DETERMINA O TEXTO QUE APARECE NA CAIXA DE TEXTO,
        # NESTE CASO, OS ARTISTAS MAIS INFLUENTES NO PAÍS
        mode=
        'none',  # DETERMINA O MODO DE COMO VÃO APARECER AS LOCALIZAÇÕES NO MAPA
    )

    # CRIA O GRÁFICO

    layout = lm.layout_mc('Most Relevant Artist by Country')

    # EDITA O LAYOUT

    data = [trace]
    fig = go.Figure(data=data, layout=layout)
    return fig
Exemplo n.º 2
0
def calor():

    df = df_inicial[['paises', 'scrobbles']]
    df = df.values.tolist()

    # cria uma lista somando os scrobbles por país
    lista_s = list()
    for pais in lista_p:
        scrobbles = 0
        for i in range(len(df)):
            if pais == df[i][0]:
                scrobbles += df[i][1]
        lista_s.append(scrobbles)

    # cria uma lista com os logs dos scrobbles da ultima lista
    lista_o_l = ([log2(i) for i in lista_s])

    # cria o gráfico
    trace = go.Choropleth(
        locationmode=
        'country names',  # DETERMINA O MODO QUE MOSTRARÁ OS PONTOS NO MAPA
        locations=
        lista_p,  # DETERMINA AS LOCALIZAÇÕES QUE APARECEM NO MAPA, NO CASO OS PAÍSES
        z=lista_o_l,  # BASE PARA AS CORES DO MAPA
        text=lista_s,
        colorscale=['rgb(255, 255, 255)', 'rgb(67, 183, 152)'
                    ],  # ESCALA DE CORES DETERMINADA PARA O GRÁFICO
        colorbar={
            'thickness': 25,
            'tickfont': {
                'color': '#c8d4d3',
                'family': 'Courier New'
            }
        }  # DETERMINA A COR E FONTE DO TEXTO E A LARGURA DA BARRA DE CORES
    )
    # cria e muda o layout
    layout = lm.layout_mc('Heat Map of Scrobbles per Country')

    data = [trace]
    fig = go.Figure(data=data, layout=layout)
    return fig
Exemplo n.º 3
0
def calor():

    df = df_inicial[['scrobbles', 'paises']]
    df = df.groupby(by='paises').sum()

    # LÊ O CSV, DETERMINA AS COLUNAS A SEREM UTILIZADAS E
    # SOMA OS SCROBBLES SEPARANDO-OS POR PAISES

    scrobbles = [math.log2(i) for i in df['scrobbles']]
    # CALCULA O LOG DOS SCROBBLES DE CADA PAÍS

    trace = go.Choropleth(
        locationmode=
        'country names',  # DETERMINA O MODO QUE MOSTRARÁ OS PONTOS NO MAPA
        locations=df.
        index,  # DETERMINA AS LOCALIZAÇÕES QUE APARECEM NO MAPA, NO CASO OS PAÍSES
        z=scrobbles,  # BASE PARA AS CORES DO MAPA
        text=df['scrobbles'],
        colorscale=['rgb(255, 255, 255)', 'rgb(67, 183, 152)'
                    ],  # ESCALA DE CORES DETERMINADA PARA O GRÁFICO
        colorbar={
            'thickness': 25,
            'tickfont': {
                'color': '#c8d4d3',
                'family': 'Courier New'
            }
        }  # DETERMINA A COR E FONTE DO TEXTO E A LARGURA DA BARRA DE CORES
    )

    # CRIA O GRÁFICO

    layout = lm.layout_mc('Heat Map of Scrobbles per Country')

    # EDITA O LAYOUT

    data = [trace]
    fig = go.Figure(data=data, layout=layout)
    return fig