Проблемы с кодированием гистограмм в Python 3

#python

#python

Вопрос:

Что я пытаюсь сделать, так это создать гистограмму, которая использует годы по оси X и количество преступлений по оси Y. Все это импортируется из файла csv.

Это то, что я пробовал, но я получаю это сообщение об ошибке.

 import matplotlib.pyplot as plt
import numpy as np

data = np.loadtxt("C://Users/Andrew/Downloads/Crimes_- 
_2001_to_present.csv", delimiter=',', skiprows = 1, usecols = range(1,5))
data = data.transpose()

xt = np.loadtxt("C://Users/Andrew/Downloads/Crimes_-_2001_to_present.csv", 
dtype='str', delimiter=',', skiprows = 1, usecols = (0,))
width = 0.5
ind = np.arange(18)   0.75

fig, ax = plt.subplots(1,1)
p0 = ax.bar(ind, data[0],  width, color = 'cyan')

ax.set_ylabel('Number of Crimes')
ax.set_xlabel('Years')
ax.set_xticks (ind   width/2.)
ax.set_xticklabels( xt, rotation = 70 )

fig.legend( (p0[0]), ('Crime Comitted that year') )
fig.tight_layout()
fig.show()
 

Вывод:

 RESTART: C:/Users/Andrew/AppData/Local/Programs/Python/Python37/bar chart.py 
Traceback (most recent call last):
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37libsite-packagesnumpylib_datasource.py", line 415, in _cache
    openedurl = urlopen(path)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37liburllibrequest.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37liburllibrequest.py", line 525, in open
    response = self._open(req, data)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37liburllibrequest.py", line 548, in _open
    'unknown_open', req)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37liburllibrequest.py", line 503, in _call_chain
    result = func(*args)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37liburllibrequest.py", line 1387, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: c>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/Andrew/AppData/Local/Programs/Python/Python37/bar chart.py", line 4, in <module>
    data = np.loadtxt("C://Users/Andrew/Downloads/Crimes_-_2001_to_present.csv", delimiter=',', skiprows = 1, usecols = range(1,5))
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37libsite-packagesnumpylibnpyio.py", line 955, in loadtxt
    fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37libsite-packagesnumpylib_datasource.py", line 266, in open
    return ds.open(path, mode, encoding=encoding, newline=newline)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37libsite-packagesnumpylib_datasource.py", line 616, in open
    found = self._findfile(path)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37libsite-packagesnumpylib_datasource.py", line 455, in _findfile
    name = self._cache(name)
  File "C:UsersAndrewAppDataLocalProgramsPythonPython37libsite-packagesnumpylib_datasource.py", line 423, in _cache
    raise URLError("URL not found: %s" % path)
urllib.error.URLError: <urlopen error URL not found: C://Users/Andrew/Downloads/Crimes_-_2001_to_present.csv>
 

>

Ответ №1:

Попробуйте это:

 import matplotlib.pyplot as plt
import numpy as np

data = np.loadtxt("C:/Users/Andrew/Downloads/Crimes_-_2001_to_present.csv", delimiter=',', skiprows = 1, usecols = range(1,5))
data = data.transpose()

xt = np.loadtxt("C:/Users/Andrew/Downloads/Crimes_-_2001_to_present.csv", dtype='str', delimiter=',', skiprows = 1, usecols = (0,))
width = 0.5
ind = np.arange(18)   0.75

fig, ax = plt.subplots(1,1)
p0 = ax.bar(ind, data[0],  width, color = 'cyan')

ax.set_ylabel('Number of Crimes')
ax.set_xlabel('Years')
ax.set_xticks (ind   width/2.)
ax.set_xticklabels( xt, rotation = 70 )

fig.legend( (p0[0]), ('Crime Comitted that year') )
fig.tight_layout()
fig.show()
 

и / или это:

 import matplotlib.pyplot as plt
import numpy as np

data = np.loadtxt("C:\Users\Andrew\Downloads\Crimes_-_2001_to_present.csv", delimiter=',', skiprows = 1, usecols = range(1,5))
data = data.transpose()

xt = np.loadtxt("C:\Users\Andrew\Downloads\Crimes_-_2001_to_present.csv", dtype='str', delimiter=',', skiprows = 1, usecols = (0,))
width = 0.5
ind = np.arange(18)   0.75

fig, ax = plt.subplots(1,1)
p0 = ax.bar(ind, data[0],  width, color = 'cyan')

ax.set_ylabel('Number of Crimes')
ax.set_xlabel('Years')
ax.set_xticks (ind   width/2.)
ax.set_xticklabels( xt, rotation = 70 )

fig.legend( (p0[0]), ('Crime Comitted that year') )
fig.tight_layout()
fig.show()
 

Комментарии:

1. Можете ли вы предоставить какие-либо объяснения относительно того, какие проблемы они решают, и как они их решают?

Ответ №2:

Сообщения об ошибках наводят меня на мысль, что вы не находите нужный файл. Попробуйте передать обработчик файла, и если это не удается создать, значит, вы не обращаетесь к файлу с правильным путем.

 with open("C://Users/Andrew/Downloads/Crimes_-_2001_to_present.csv", "r") as file:
    data = np.loadtxt(file, delimiter=',', skiprows = 1, usecols = range(1,5))
data = data.transpose()
...