Отображение данных в процентах

1

Я использовал Google для поиска, но я не нашел ответа.

Моя проблема:

У меня есть массив данных, и я хотел бы построить график с использованием единицы процента. Пример:

данные: [1, 3, 1, 3, 3, 2, 4, 5]

  • 1: 0,25

  • 2: 0.125

  • 3: 0,375

  • 4: 0.125

  • 5: 0.125

PS: я не хочу использовать только R-питон, matplotlib и, если нужно, numpy

  • 0
    Ваш вопрос о том, как поместить «%» в ylabel или вы хотите преобразовать данные? Если да, то как?
  • 0
    Я использую matplotlib.ticker для формата метки. Я ищу модуль / функцию ... для того, чтобы узнать представление от части населения: en.wikipedia.org/wiki/Population . @DTing, кажется, есть "руководство", но хороший способ.
Теги:
matplotlib

2 ответа

1
Лучший ответ

Изменить: извините неправильно прочитал ваш вопрос, я думал, что вы имеете в виду только python. Кто-то, надеюсь, опубликует решение matplotlib или numpy.

здесь один из способов сделать это, отсортировав список:

>>> a = [1, 3, 1, 3, 3, 2, 4, 5]
>>> 
>>> def unit_percents(L1):
...     ret = {}
...     L = L1[:]
...     sorted(L)
...     if L:
...         cur_count = 1
...         for i in range(len(L)-1):
...             cur_count+=1
...             if L[i] != L[i+1]:
...                 ret[L[i]]=float(cur_count)/len(L)
...                 cur_count=1
...         ret[L[-1]]=float(cur_count)/len(L)
...     return ret
... 
>>> unit_percents(a)
{1: 0.25, 2: 0.25, 3: 0.375, 4: 0.25, 5: 0.125}

и

>>> dict([(x,float(a.count(x))/len(a)) for x in set(a)])
{1: 0.25, 2: 0.125, 3: 0.375, 4: 0.125, 5: 0.125}
>>> 
  • 0
    Спасибо за ваш ответ, если они еще не являются функцией для этого, я буду использовать ваш путь. большое спасибо
2

Взгляните на функцию hist в matplotlib: http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.hist Numpy также имеет функцию гистограммы: http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню