【问题标题】:Using matplotlib to create a histogram on Windows Subsystem for Linux Ubuntu使用 matplotlib 在 Linux Ubuntu 的 Windows 子系统上创建直方图
【发布时间】:2018-05-25 21:52:57
【问题描述】:

我正在尝试为名为“count_backers.csv”的 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)

我开始使用 Learn Python the Hard Way 来学习 python,并且我习惯于从 PowerShell 执行 python 文件。但是,我一直在努力在 Windows 上安装和构建 matplotlib,为了节省时间,我决定将它安装在 Linux Ubuntu 的 Windows 子系统上。在我能够正常工作后,我现在收到以下错误:

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

【问题讨论】:

  • 安装 Anaconda Python Distribution (google it),它将解决您在 windows 中的所有 python 问题。
  • 我会调查的。谢谢!

标签: python ubuntu matplotlib windows-subsystem-for-linux


【解决方案1】:

"mnt/c/Users/user/Documents/user/Programming/count_backers.csv" 是从当前工作目录开始的相对路径,很可能不是文件系统根目录。尝试用斜线开始路径。

【讨论】:

  • 确实有效,但我现在遇到了一些不同的错误。我编辑了我的问题以显示新的错误。
  • 那是一个完全不同的问题。请发布一个新问题。
猜你喜欢
  • 1970-01-01
  • 2021-02-27
  • 2018-02-27
  • 2018-06-09
  • 2019-06-27
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多