Как построить диаграмму в питоне по данным из таблицы эксель

сильно не ругайтесь, я только начинаю познавать данный материал:) Преподаватель дал код из которого нужно сделать диаграмму по годам со своими значениями из эксель сам код:

from datetime import date
from tkinter.ttk import LabeledScale
from turtle import clear
import matplotlib
import matplotlib.pyplot as plt
import numpy as np 
import csv 

years = { 0:"2000",
          1:"2001",
          2:"2002",
          3:"2003",
          4:"2004",
          5:"2005",
          6:"2006",
          7:"2007",
          8:"2008",
          9:"2009",
          10:"2010",
          11:"2011",
          12:"2012",
          13:"2013",
          14:"2014",
          15:"2015",
          16:"2016", 
          17:"2017",
          18:"2018",
          19:"2019",
          20:"2020",
          }


passagirs = {}

with open('gruz-per.csv') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=';') 
    rows = list(csv_reader)

    #years = rows[4][1:len(rows[4])]

all_data = rows[38]

print(csv_reader)

print(all_data)

cl_data =all_data[1:len(all_data)] 

clear_data = []

for i in range(len(cl_data)):
    if (cl_data[i].find(',') > -1):
        clear_data.append(float(cl_data[i].replace(',','.')))
    else:
        clear_data.append(float(cl_data[i]))



x = np.arange(len(clear_data))
width = 0.35

fig, ax = plt.subplots(figsize=(15,4), layout='constrained')

ax.set_ylabel('Перевезено (млн. т)')
ax.set_title('Годы')
ax.set_xticks(x)
ax.set_xticklabels(years)


pps = ax.bar(x - width/2, clear_data, width, label='population')
for p in pps:
   height = p.get_height()
   ax.annotate('{}'.format(height),
      xy=(p.get_x() + p.get_width() / 2, height),
      xytext=(0, 3), #Вертикальный отступ от столбца диаграммы до текста 
      textcoords="offset points",
      ha='center', va='bottom')

plt.show()

Но ничего не выходит, вот что выдает:

Traceback (most recent call last): line 37, in <module>
    rows = list(csv_reader)
line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1428: character maps to <undefined>

Спасибо тому, кто хоть объяснит в чем дело!


Ответы (0 шт):