Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

495
Visualizações
Gráfico circular de Matplotlib con 'Todas las demás categorías'

He creado un gráfico circular matplotlib:

 df.plot(kind='pie', subplots=True, figsize=(6, 4))

Mi marco de datos consta de dos columnas: país y valor (% de distribución) y tiene alrededor de 25 países enumerados. Me gustaría trazar solo los 10 países principales por valores (por % más alto) y dentro del gráfico, calcular el valor porcentual de los países restantes y darle el título de 'Todos los demás países'. ¿Cómo hago esto usando matplotlib usando la función .plot?

 Country Value Albania 4% Brazil 3% Denmark 5% France 10% Mexico 3% Nigeria 15% Spain 4% US 5%
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Como ya se indicó en los comentarios, la mejor manera de hacer esto es probablemente hacer las manipulaciones antes de trazar. Aquí hay una manera de cómo hacerlo:

 import pandas as pd from matplotlib import pyplot as plt import numpy as np countries = [ 'Albania', 'Brazil', 'Denmark', 'France', 'Mexico', 'Nigeria', 'Spain', 'Germany', 'Finland', ] #the full dataframe df = pd.DataFrame( data = {'country': countries, 'value' :np.random.rand(len(countries))}, ).sort_values('value', ascending = False) #the top 5 df2 = df[:5].copy() #others new_row = pd.DataFrame(data = { 'country' : ['others'], 'value' : [df['value'][5:].sum()] }) #combining top 5 with others df2 = pd.concat([df2, new_row]) #plotting -- for comparison left all countries and right #the others combined fig, axes = plt.subplots(nrows = 1, ncols = 2, figsize = (9,4)) df.plot(kind = 'pie', y = 'value', labels = df['country'], ax = axes[0]) df2.plot(kind = 'pie', y = 'value', labels = df2['country'], ax = axes[1]) axes[0].set_title('all countries') axes[1].set_title('top 5') plt.show()

El resultado se ve así.

resultado del código anterior

Espero que esto ayude.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda