Показывать информацию в графике scatter

У меня есть проблемы, чтобы показывать legend в scatter.

Данные, использованные для примера

import pandas as pd
import numpy as np
import scipy.stats
import matplotlib
import matplotlib.pyplot as pp
import re
import mailbox
import csv
from IPython import display
from ipywidgets import interact, widgets
%matplotlib inline

datos = pd.read_csv('https://raw.githubusercontent.com/theengineeringworld/statistics-using-python/master/gapminder.xls')
datosDos = datos.dropna()
datosDos.reset_index(drop=True, inplace=True)

Я использую следующую функцию:

def plotyearDinamico(anio):

    data = datosDos[datosDos.year == anio]
    area = 10e-6 * datosDos.population
    color = data.region.map({'Africa': 'skyblue', 'Europe' : 'gold', 
    'America' : 'palegreen', 'Asia' : 'coral'})

    data.plot.scatter('babies_per_woman', 'age5_surviving', s = area, c = 
    color, linewidth = 1, edgecolors = 'k', figsize=(9,6))

    pp.axis(ymin = 50, ymax = 105, xmin = 0, xmax = 8)
    pp.xlabel('babies_per_woman')
    pp.ylabel('age5_surviving')

Потом звоня в эту функцию я вижу следующий график:

interact(plotyearDinamico, anio=widgets.IntSlider(min=1950, max=2015, 
step=1, value= 1950))

introducir la descripción de la imagen aquí

Который является legend (), но я не нахожу, как помещение этого в этот график.

Шрифт: Пример, в котором я нуждаюсь

Как я могу делать, чтобы показывать имена континентов, так как я только считаю их дифференцированными цветами? Немного более или менее так:

import matplotlib.pyplot as plt
from numpy.random import rand

fig, ax = plt.subplots()
for color in ['red', 'green', 'blue']:
    n = 750
    x, y = rand(2, n)
    scale = 200.0 * rand(n)
    ax.scatter(x, y, c=color, s=scale, label=color,
           alpha=0.3, edgecolors='none')

ax.legend()
ax.grid(True)

plt.show()

introducir la descripción de la imagen aquí

Если я добавляю в мой график pp.legend (data.region), покажи следующее (Площадь и цвет согласовываются, но только принеси один)

introducir la descripción de la imagen aquí

2
задан 18.03.2019, 20:46
1 ответ

Несколько изменений в тебя cГіdigo:

def plotyearDinamico(anio):

    data = datosDos[datosDos.year == anio]

    colores = {'Africa': 'skyblue', 'Europe' : 'gold', 
               'America' : 'palegreen', 'Asia' : 'coral'}


    pp.rcParams['figure.figsize'] = [12, 8] # Config. tamaño de gráfica
    fig, ax = pp.subplots()
    for region, color in colores.items():

        # Subgráficas por region
        data_region = data[data.region == region]
        area = 10e-6 * data_region.population
        paises_colors = data_region.region.map(colores)

        ax.scatter(x=data_region.babies_per_woman, 
                   y=data_region.age5_surviving, 
                   c=color, 
                   s=area, 
                   label=region, 
                   linewidth = 1,
                   alpha=0.7,
                   edgecolors='k')

    pp.axis(ymin = 50, ymax = 105, xmin = 0, xmax = 8)
    pp.xlabel('babies_per_woman')
    pp.ylabel('age5_surviving')

    # Configuración del tamaño de las leyendas
    lgnd = pp.legend(loc="lower left", scatterpoints=1, fontsize=10)
    for handle in lgnd.legendHandles:
        handle.set_sizes([50.0])

    pp.grid(True)
  • Главное значительное изменение состоит в том, что, вместо hace Гєnica grГЎfica, мы делаем sub-grГЎficas из-за района, из-за чего мы будем должны делать subconjuno данных, с: data_region = data[data.region == region]
  • Мы Используем прямо metГіdo scatter из matplotlib а следовательно мы будем должны конфигурировать соответствующим образом их parГЎmetros x и y, посредством: x=data_region.babies_per_woman, y=data_region.age5_surviving
  • В этом типе grГЎfico рекомендуемый конфигурировать что-то transparecia посредством alpha=0.7, чтобы мочь оценивать наложения (немного по крайней мере)
  • , изобразив графически из-за regiГіn, легенда конфигурируется прямо посредством label=region, region в этом случае - цепь с именем той же самой.
  • по умолчанию, tamaГ±o их cГ-rculos приспосабливается в tamaГ±o к ГЎrea каждый regiГіn, что не идет, Гєltima уезжает cГіdigo - для configurara один tamaГ±o я закрепляю.

introducir la descripción de la imagen aquí

1
ответ дан 02.12.2019, 05:59
  • 1
    Многие изящество Патрицианский! – Juan 20.03.2019, 17:18