Использование matplotlib для создания гистограммы в подсистеме Windows для Linux Ubuntu - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь создать простую гистограмму для CSV-файла с именем "count_backers.csv".Код, который у меня есть, выглядит следующим образом:

import matplotlib.pyplot as plt
# import numpy as np
import plotly.plotly as py
import csv

def make_hist(csv_filepath):
    data = open(csv_filepath)
    reader = csv.reader(data)
    column = []
    for row in data:
        column.append(row)
    plt.hist(column)
    plt.title("Number of Backers")
    plt.xlabel("Frequency")
    plt.ylabel("Value")
    plt.show()

# fig = plt.gcf()
# plot_url = py.plot_mpl(fig, filename='backers_histogram')

backer_data = r"C:/Users/user/Documents/user/Programming/count_backers.csv"
make_hist(backer_data)

Я начал изучать python с помощью Learn Python на нелегком пути, и я привык выполнять файлы python из PowerShell.Тем не менее, я изо всех сил пытался установить и собрать matplotlib в Windows, и ради времени я решил установить его в подсистеме Windows для Linux Ubuntu.После того, как я смог заставить это работать, я теперь получаю следующую ошибку:

Traceback (most recent call last):
  File "histogram.py", line 22, in <module>
    make_hist(backer_data)
  File "histogram.py", line 7, in make_hist
    data = open(csv_filepath)
FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/user/Documents/user/Programming/count_backers.csv'

Я пробовал несколько различных версий пути к файлу, включая:

backer_data = r"C:\Users\user\Documents\user\Programming\count_backers.csv"
backer_data = "mnt/c/Users/user/Documents/user/Programming/count_backers.csv"
backer_data = r"mnt\c\Users\user\Documents\user\Programming\count_backers.csv"

Они приводят к следующим ошибкамсоответственно:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\user\\Documents\\user\\Programming\\count_backers.csv'
FileNotFoundError: [Errno 2] No such file or directory: 'mnt/c/Users/user/Documents/user/Programming/count_backers.csv'
FileNotFoundError: [Errno 2] No such file or directory: 'mnt\\c\\Users\\user\\Documents\\user\\Programming\\count_backers.csv'

Когда я использую ls в указанном каталоге, хотя он показывает, что файл там находится:

smidem@JealousHippo:/mnt/c/Users/user/Documents/user/Programming$ ls
column_avg.py  count_backers.csv  histogram.py  pledged.csv

Я довольно озадачен, почему он не можетнайти этот файл, и любая помощь будет принята с благодарностью.

С помощью l0b0 я изменил backer_data на backer_data = "/mnt/c/Users/user/Documents/user/Programming/count_backers.csv", но теперь я получаю это в ответ:

Traceback (most recent call last):
  File "histogram.py", line 22, in <module>
    make_hist(backer_data)
  File "histogram.py", line 12, in make_hist
    plt.hist(column)
  File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 2947, in hist
    ax = gca()
  File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 928, in gca
    return gcf().gca(**kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 578, in gcf
    return figure()
  File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 527, in figure
    **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line 84, in new_figure_manager
    return new_figure_manager_given_figure(num, figure)
  File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line 92, in new_figure_manager_given_figure
    window = Tk.Tk()
  File "/usr/lib/python3.5/tkinter/__init__.py", line 1871, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

1 Ответ

0 голосов
/ 26 мая 2018

"mnt/c/Users/user/Documents/user/Programming/count_backers.csv" - это относительный путь , начинающийся с текущего рабочего каталога, который, скорее всего, не является корнем файловой системы.Попробуйте начать путь с косой черты.

...