AttributeError: модуль 'matplotlib.pyplot' не имеет атрибута 'pyplot' - PullRequest
0 голосов
/ 22 марта 2020

Решил его во время написания этого вопроса, оставив его для любого другого идиота, как у меня возникли проблемы.

Я недавно начал писать в python через некоторые учебные пособия и не могу использовать matplotlib.

Настройка:

  • VS Code, нет виртуальной среды
  • Anaconda 3 (насколько я знаю, matplotlib должен работать)

Ошибка:

Я получаю следующую ошибку при запуске моего кода:

> PS C:\Users\USER\Desktop\Python Course> python Testing.py
Traceback (most recent call last):
  File "Testing.py", line 66, in <module>
    plt.pyplot.hist(dataset["horsepower"])
AttributeError: module 'matplotlib.pyplot' has no attribute 'pyplot'

Меры:

  • Я имею попытался импортировать pyplot как from matplotlib import pyplot as plt и как import matplotlib.pyplot as plt, также сначала попытался импортировать matplotlib, а затем импортировать pyplot безрезультатно.

  • pip install --upgrade matplotlib (он уже был установлен , но сделал это только для того, чтобы убедиться)

  • после «обновления» matplotlib, не смог проверить версию matplotlib с matplotlib.__version__, поэтому я ввел pip list и там нашел matplotlib 3.2.1 заставляет меня поверить, что это не ошибка установки?

  • Я наконец создал файл .pth в D:\Anaconda3\Lib\site-packages с именем example.pth Содержит ng только следующее:

C: \ Users \ USER \ AppData \ Roaming \ Python \ Python37 \ Scripts

Я прошел все похожие вопросы по этому вопросу и не могу понять. Настолько, что я наконец-то создал для этого SO-аккаунт.

Пример кода:

import pandas as pd 
import numpy as np
from matplotlib import pyplot as plt

#importing dataset csv
path = "C:\\Users\\USER\\Desktop\\Python Course\\vehicle.data"
dataset=pd.read_csv(path, header=None)

#assigning non-existant headers
headers = ["symboling","normalized-losses","make","fuel-type","aspiration", "num-of-doors","body-style",
         "drive-wheels","engine-location","wheel-base", "length","width","height","curb-weight","engine-type",
         "num-of-cylinders", "engine-size","fuel-system","bore","stroke","compression-ratio","horsepower",
         "peak-rpm","city-mpg","highway-mpg","price"]
dataset.columns = headers

#eliminates cars with no price recording
dataset.dropna(subset=["price"], axis=0)

dataset[['length','compression-ratio'] ].describe()

#converting to km
dataset["city-mpg"]=235/dataset["city-mpg"]
dataset.rename(columns={"city-mpg": "city-L/100Km"}, inplace=True)
dataset["highway-mpg"]=235/dataset["highway-mpg"]
dataset.rename(columns={"highway-mpg": "highway-L/100Km"}, inplace=True)

#standarizing missing values to NaN (python default)
dataset.replace("?", np.nan, inplace = True)
missing_data = dataset.isnull() #(False=not missing value, true=missing value)


#Replacing normalized-loss
avg_normloss=dataset["normalized-losses"].astype("float").mean(axis=0) #122.0
dataset["normalized-losses"].replace(np.nan, avg_normloss, inplace=True)
#stroke
avg_stroke=dataset["stroke"].astype("float").mean(axis=0) #122.0
dataset["stroke"].replace(np.nan, avg_stroke, inplace=True)
#bore
avg_bore=dataset["bore"].astype("float").mean(axis=0) #122.0
dataset["bore"].replace(np.nan, avg_bore, inplace=True)
#horsepower
avg_HP=dataset["horsepower"].astype("float").mean(axis=0) #122.0
dataset["horsepower"].replace(np.nan, avg_HP, inplace=True)
#peak-rpm
avg_peak=dataset["peak-rpm"].astype("float").mean(axis=0) #122.0
dataset["peak-rpm"].replace(np.nan, avg_peak, inplace=True)
#num-of-doors
freq_doors=dataset['num-of-doors'].value_counts().idxmax()
dataset["num-of-doors"].replace(np.nan, freq_doors, inplace=True)
#Dropping rows with no price
dataset.dropna(subset=["price"],axis=0,inplace=True)
#reset index
dataset.reset_index(drop=True, inplace=True)

#data types corrections
dataset[["bore", "stroke", "price", "peak-rpm"]] = dataset[["bore", "stroke", "price", "peak-rpm"]].astype("float")
dataset[["normalized-losses", "horsepower"]] = dataset[["normalized-losses", "horsepower"]].astype("int")

#normalization
#0 to 1 values
dataset['length'] = dataset['length']/dataset['length'].max()
dataset['width'] = dataset['width']/dataset['width'].max()
dataset['height'] = dataset['height']/dataset['height'].max()

#HP histrogram
plt.pyplot.hist(dataset["horsepower"])
plt.pyplot.xlabel("horsepower")
plt.pyplot.ylabel("count")
plt.pyplot.title("horsepower bins")

bins = np.linspace(min(dataset["horsepower"]), max(dataset["horsepower"]), 4)
group_names = ['Low', 'Medium', 'High']
dataset.to_csv("vehicledata.csv", index=False)

Ссылочный файл в коде находится здесь: Файл

решено plt.pyplot.hist(dataset["horsepower"]) и 3 последующие строки кода были неправильными. Написание plt.pyplot.hist() было излишним, и в моем случае не очевидно, что неправильно. Изменение вызова на plt.hist() устранило мои проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...