Я пытаюсь получить гистограмму с помощью Matplotlib в Python 3.6, и хотя я получил диаграмму, она не сортируется в возрастающем порядке.
Код сможет создать список из Столбец CSV-файла, подсчитайте вхождения в этом списке и верните словарь (тип вхождений: номер вхождения) и распечатайте его на графике гистограммы. Я не могу понять, почему столбцы не упорядочены, и примеры, которые я видел по этому типу проблемы, отличаются от моей ситуации.
Файл не здесь, но результаты печати (Di c) заказано: Счетчик ({'Walk': 191, 'Sitt': 87, 'CarChild': 28, 'SittCell': 26, 'WalkCell': 23, 'SittTalk': 21, 'Play': 17, 'Shoot' : 16, «PhyExer»: 12, «Jogging»: 9, «PlayFeedF»: 7, «ShootSelf»: 6, «Stand»: 4, «PushPram»: 3, «OnPram»: 3, «ShootCam»: 2 , 'Portrait': 2, 'Pose': 2, 'PlayFeedB': 2, 'PlayScoot': 2, 'ACTION': 1, 'Sing': 1, 'SittLap': 1, 'SittMag': 1, ' SittBook ': 1,' WalkChild ': 1,' WalkPar ': 1,' PlayInst ': 1,' PlayFeed ': 1,' WalkScoot ': 1,' PlayInstCell ': 1})
Здесь следует код:
import matplotlib.pyplot as plt
import csv
import numpy as np
from collections import Counter
# this block will create a list from a csv column
lista = []
with open('xujiahui.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
for lines in csv_reader:
lista.append(lines[1])
#print(lista)
# this block will count each item and return a key: value pair dic:
Dic = Counter(lista)
print(Dic)
# this block plots bar chart
uses = list(Dic.keys())
use_num = list(Dic.values())
plt.xlabel('Occurrences')
plt.title('User types and occurrences')
plt.barh(range(len(use_num)), use_num, color='black', tick_label=uses)
plt.show()
Ниже приводится сюжет:
![enter image description here](https://i.stack.imgur.com/jSYdE.png)