Правильно отобразить график с помощью matplotlib - PullRequest
1 голос
/ 27 сентября 2019

Мне нужна небольшая помощь с ноутбуком Jupyter, с которым я работаю.Я использую Miniconda для Windows 64.

У меня есть этот код:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

# Función original
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
x = x[:, np.newaxis]

# Datos de la función
np.random.seed(2)  # Semilla para replicar los resultados
x_train = np.linspace(0, 2*np.pi, 50)
y_train = np.sin(x_train) + np.random.randint(-1, 2, 50) * 0.3
X_train = x_train[:, np.newaxis]

print("x_train shape", x_train.shape)
print("X_train shape", X_train.shape)

def polinom_n(grado, X_tr, y_tr, x_vals):
    pol_reg = LinearRegression()
    features = PolynomialFeatures(grado)
    X_feat = features.fit_transform(X_tr)
    print(X_feat.shape)
    pol_reg.fit(X_feat, y_tr)
    y_pol = pol_reg.predict(features.fit_transform(x_vals))
    return y_pol

lin_r = LinearRegression()
lin_r.fit(X_train, y_train)  # aprende de las muestras
y_lin = lin_r.predict(x)  # ajusta a todos los valores de x

# Modelo polinomial
y_pol3 = polinom_n(3,X_train,y_train, x)
# Probar valores de 2 a 50
n = 20
y_poln = polinom_n(n, X_train, y_train, x)

# Plot de la figura
plt.figure(figsize=(10, 6))
plt.plot(x, y, "r", label="f(x)")  # Grafica la función original
plt.scatter(X_train, y_train, color='black')  # Grafica las muestras
plt.plot(x, y_lin, label="reg lineal")  # Grafica la regresión lineal
plt.plot(x, y_pol3, label="poli reg 3")  # Grafica la regresión polinomial
plt.plot(x, y_poln, label="poli reg %d"%(n))
plt.legend(loc="lower right")
plt.ylim(-2.5, 2.5)
plt.show()

Проблема заключается в том, что, если я запускаю этот код в Google Colab или на другом компьютере с точно таким же conda env, Я получаю

Output A

, но на моем собственном компьютере с Windows 10 я получаю

Output B.

Я удалил свой conda envи я создал это снова;Я обновил все пакеты в моем conda env, но он не работает.

Это был процесс, который я использовал для создания своего виртуального env:

  1. conda create -n actumlogos-cpu python=3.6 pip tensorflow keras
  2. conda activate actumlogos-cpu
  3. conda install scipy jupyter matplotlib flask-socketio imageio pandas requests scikit-image scikit-learn
  4. pip install opencv-python moviepy

Выход снова: Выход A Выход B

...