Я использовал 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
Изменить: извините неправильно прочитал ваш вопрос, я думал, что вы имеете в виду только 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}
>>>
Взгляните на функцию 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