Решил его во время написания этого вопроса, оставив его для любого другого идиота, как у меня возникли проблемы.
Я недавно начал писать в 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()
устранило мои проблемы.