Как отрисовать функцию используя mathplotlib?
На вход подается функция y=x/cos(x), я новичок в программировании и не могу понять, почему график выглядит не естественно, думал что проблема в том, какой шаг по оси х я задаю, пробовал np.linspace и np.arrange, но все равно не смог разобраться в проблеме. Также пробовал использовать либу scipy, а конкретно метод interp1d, но все равно ничего не вышло
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi,np.pi,100)
y = x/np.cos(x)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position('center')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
plt.plot(x, y, 'b')
plt.show()
Ответы (1 шт):
Автор решения: Alex Alex
→ Ссылка
У вас функция с разрывами. Попробуйте так:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-30,30,100000)
y = x/np.cos(x)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position('center')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.set_ylim([-100,100])
plt.plot(x, y, '.b', markersize=1)
plt.show()


