Сделай пирог в матплотлибе из колонны - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть df, который имеет много столбцов.Мне нужно сделать круговую диаграмму с использованием столбцов users и отобразить ее в соответствии со столбцом number.

users  number   col1  col2
user1   1        12    abc
user2   34       13    ..
user3   56       12
user4   45       ..
user5   4
user1   3
user5   11
user1   3

Как сделать круговую диаграмму в соответствии с процентами, которые пользователи имеют в столбце чисел?Может быть ясно, кто имеет более высокое число в процентах от целого.Если вам нужно разъяснение, спросите меня.Спасибо

Я сделал:

plt.pie(x['users'],x['number'])

но он говорит:

ValueError: could not convert string to float: 'user11'

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вот минимальное рабочее решение, которое берет один столбец и отображает их сумму в зависимости от вашего примера.Это может быть не самый умный способ сделать это, но дает вам то, что вы хотите.

import pandas as pd

df = pd.DataFrame({'number': [1,34,56,45,4, 3, 11, 3], 
                  'users':['user1','user2','user3','user4','user5', 'user1','user5','user1']})
df1 = df.groupby(['users']).sum().reset_index()
df1 = df1.set_index('users')
plot = df1.plot.pie(y='number', figsize=(6, 6))

Вывод

enter image description here

0 голосов
/ 11 сентября 2018

Функция пирога принимает только 1 значение для размера каждого пирога, и вам нужно будет явно указать метку как 'label = x [' users ']', вы можете найти более подробное понимание параметров Здесь !

Следовательно, ваш код будет выглядеть так:

plt.pie(x['number'],labels = x['users'])
...