Python - Graficar Funciones a trozos

 
Vista:

Graficar Funciones a trozos

Publicado por Danicov (1 intervención) el 09/04/2020 05:30:48
Hola amiguitos, he estado intentando graficar una función a trozos en python pero no he podido hacerlo de manera correcta.
Aqui la función a trozos que quiero graficar:
eweew

Sin embargo no he podido hacerlo bien:

Mi código:

1
2
3
4
5
6
7
8
9
import numpy as np
import matplotlib.pyplot as plt
 
x = np.linspace(-2, 6)
y = np.piecewise(x, [ (x <= 0) & (x >= -2), (x <= 1) & (x >= 0),(x <= 3) & (x >= 1), (x <= 5) & (x >= 3)], [-2, lambda x: x+2, lambda x: 0.5*x-1.5,
lambda x: -0.5*x+2.5])
plt.plot(x, y)
plt.grid()
plt.show()

La grafica que obtengo:
pytho
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 156
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Graficar Funciones a trozos

Publicado por Andrés (55 intervenciones) el 10/04/2020 09:25:19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import numpy as np
import matplotlib.pyplot as plt
 
x1 = np.linspace(-2, 0, num=3)
x2 = np.linspace(0, 1, num=2)
x3 = np.linspace(1, 3, num=3)
x4 = np.linspace(3, 5, num=3)
 
plt.plot(x1, [2 for x in x1], 'g',  label='y = 2, x en [-2, 0]')
plt.plot(x2, [x + 2 for x in x2], 'b', label='y = x + 2, x en [0, 1]')
plt.plot(x3, [.5 * x - 1.5 for x in x3], 'r', label='y = .5*x - 1.5, x en (1, 3]')
plt.plot(1, -1, 'ro', markersize=5, fillstyle='none', markerfacecolor='w')
plt.plot(x4, [.5 * x + 2.5 for x in x4], 'm', label='y = .5*x +2.5, x en (3, 5]')
plt.plot(3, 4, 'mo', markersize=5, fillstyle='none', markerfacecolor='w')
 
plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc='lower left',
           ncol=2, mode="expand", borderaxespad=0.)
 
plt.grid()
plt.show()


funcs
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar