• Register

Izrisovanje grafa z modulom 'matplotlib' vrze napako: DeprecationWarning

+3 votes
141 views

Tole je koda:

import matplotlib.pyplot as plt
import numpy as np

%matplotlib inline

x = np.linspace(-4, 4, 0.1)

y1 = 0.5*x**3+1.5*x**2+0.5*x-12
y2 = -40*np.sin(np.pi*x/2)

plt.plot(x, y1, 'b--', label='$f(x)=0.5~x^3+1.5~x^2+0.5~x-12$', linewidth = 2);
plt.plot(x, y2, 'k-', label='$g(x)=-40~\sin(\pi x /2)$', linewidth = 2);
plt.xlim(-4, 4)
plt.legend(loc=(1.01,0))

To je koda; ko jo poženem se pod njo v rdečem ozadju izpiše:

E:\Anaconda\lib\site-packages\ipykernel_launcher.py:1: DeprecationWarning: object of type <class 'float'> cannot be safely interpreted as an integer.
  """Entry point for launching an IPython kernel.
Izriše se samo kvaratek in skala na oseh ter legenda, grafa funkcije pa ne.
Kako to rešiti?
asked Oct 23 by rudinadlucnik (150 points)

2 Answers

0 votes

Vaš minimalni problem je:

x = np.linspace(-4., 4, 0.2)
plt.plot(x, x)

Rešitev pa v dokumentaciji funkcije linspace. NAjdite odgovor in ga podajte, pa ga bom označil kot pravilnega.

answered Oct 23 by janko.slavic (75,010 points)
Imam podobno tezavo. Sem poskusil s podatki, ki ste jih podali kolegu vendar mi se vedno vrne napako.

MOJA KODA:

import matplotlib.pyplot as plt

%matplotlib inline
x = np.linspace(-4, 4, 0.1)

y = (0.5* (x**3)) - (1.5* x**2)+(0.5*x)-12
g = -40*np.sin((np.pi*x)/2)
plt.plot(x, y,'.',label='$f(x) = 0.5x^3 + 1.5x^2 + 0.5x - 12$',linewidth = 2)
plt.plot(x, g,'-', label ='$g(x) = -40sin(πx/2)$')
plt.legend(loc=(1.01,0))

Ko kodo poženem mi izpiše samo ohišje grafa in legendo. Ter seveda napako.

Prosim za pomoč.
Poglejte kaj je vaš x
Problem je torej v tem, da linspace potrebuje parameter število točk in ne korak. Glejte `linspace` tukaj: https://jankoslavic.github.io/pypinm.io/predavanje%2003%20-%20moduli,%20numpy,%20matplotlib.html#Osnove-modula-numpy
ali v dokumentaciji numpy.
0 votes

Razlog je v napačni uporabi funkcije linspace. linspace ima tri parametre: start, end in število točk! Glejte dokumentacijo.

answered Nov 14 by janko.slavic (75,010 points)
...