Увеличить расстояние между маркерами Pyplot

#python #numpy #matplotlib #math

#python #numpy #matplotlib #математика

Вопрос:

Я работаю над проектом Uni, и нам нужно написать функцию, которая задала 4 аргумента f, a, b и h.

f — это дескриптор функции, который присваивается функции

a и b — это включающие интервальные пределы функции, на которых должен быть график

и h должно быть расстоянием между двумя соседними точками.

У меня пока все есть, но я не понимаю, как увеличить или уменьшить расстояние между соседними точками.

К настоящему времени это мой код:

 def plot_function_h(f,a,b,h=10**-3):
    
    interval = np.linspace(a,b)
    
    y = list()
    
    for i in range(len(interval)):
        y.append(f(interval[i]))
        
    
    plt.plot(interval,y, 'bo')
    plt.title('h-plot')
    plt.xlabel('x')
    plt.ylabel('f(x)')
    plt.show()
 

Ответ №1:

Прежде всего, поскольку вы используете numpy, вам не нужно иметь цикл. Вы можете сделать это:

 y = f(interval)
 

Что быстрее и проще.
Во-вторых, np.linspace может принимать много аргументов, один из которых — num, по умолчанию num равно 50 и определяет количество генерируемых точек. Я думаю, это должно вам помочь:

 num_points = (b - a) // h
interval = np.linspace(a, b, num_points)
 

Комментарии:

1. Я знаю об этом факте с количеством точек в np.linspace. Но есть ли способ построить точки на определенном расстоянии друг от друга. Я не понимаю, как это может помочь.

2. А также, когда я пытаюсь использовать y = f (интервал), он сообщает мне, что только массивы размера 1 могут быть преобразованы в скаляры python