График не будет отображаться в Python - PullRequest
0 голосов
/ 12 декабря 2018

Я новичок в программировании и пытаюсь заставить работать график на Python.Но я застрял с какой-то ошибкой, и график не будет отображаться.Я на Ubuntu OS.Надеюсь, что некоторые гуру Python могут объяснить, что не так и как это исправить.

Код:

import csv
import numpy as np
from sklearn.svm import SVR
import matplotlib.pyplot as plt



dates = []
prices = []

def get_data(filename):
    with open(filename, 'r') as csvfile:
        csvFileReader = csv.reader(csvfile)
        next(csvFileReader)
         for row in csvFileReader:
            dates.append(int(row[0].split('-')[0]))
             prices.append(float(row[1]))
    return

 def predict_prices(dates, prices, x):
    dates = np.reshape(dates,(len(dates), 1))
    svr_lin = SVR(kernel='linear', C=1e3)
    svr_poly = SVR(kernel='poly', C=1e3, degree = 2)
    svr_rbf = SVR(kernel='rbf',C=1e3, gamma = 0.1)
    svr_rbf.fit(dates, prices)
    svr_poly.fit(dates, prices)
    svr_rbf.fit(dates, prices)

    plt.scatter(dates, prices, color='black', label='Data')
    plt.plot(dates, svr_rbf.predict(dates), color='red', label='RBF model')
    plt.plot(dates, svr_lin.predict(dates), color='green', label='Linear 
model')
    plt.plot(dates, svr_poly.predict(dates), color='blue', label='Polynomial 
model')
    plt.xlabel('Date')
    plt.ylabel('Price')
    plt.title('Support Vector Regression')
    plt.legend()
    plt.show()

    return svr_rbf.predict(x)[0], svr_lin.predict(x)[0], svr_poly.predict(x) 
[0]
get_data('aapl.csv')
predicted_price = predict_prices(dates, prices, 29)
print(predicted_price)

, который приводит к этой ошибке:

/ home / xxx / .local / lib / python3.6 / site-packages /sklearn / svm / base.py: 196:
FutureWarning: значение гаммы по умолчанию изменится с «авто» на «масштаб» в версии 0.22, чтобы лучше учитывать немасштабированные функции.Чтобы избежать этого предупреждения, установите для гаммы явное значение «Авто» или «Масштаб».

1 Ответ

0 голосов
/ 12 декабря 2018

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

Чтобы проверить выбранный бэкэнд, вы можете попробовать это:

 matplotlib.get_backend()

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

Например, в моей текущей установке на Ubuntu 18.04 я использую бэкэнд 'Qt5Agg'.

Более подробную информацию вы всегда можете найти в официальной документации здесь: https://matplotlib.org/faq/usage_faq.html#what-is-a-backend

Копирование по вышеуказанной ссылке:

Существует четыре способа настройки вашего бэкэнда.Если они конфликтуют друг с другом, будет использоваться метод, упомянутый последним в следующем списке, например, вызов use () переопределит настройку в вашем matplotlibrc.

Параметр backend в вашем файле matplotlibrc

backend : WXAgg   # use wxpython with antigrain (agg) rendering

Установка переменной среды MPLBACKEND для вашей текущей оболочки или для отдельного сценария:

export MPLBACKEND="module://my_backend"
python simple_plot.py

MPLBACKEND="module://my_backend" python simple_plot.py

Чтобы установить бэкэнд для отдельного сценария, вы также можете использовать командную строку -dаргумент (устарел):

python script.py -dbackend

Если ваш скрипт зависит от конкретного бэкэнда, вы можете использовать функцию use ():

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