Почему горизонтальная (y = 0) линия не отображается на этом графике? - PullRequest
0 голосов
/ 27 февраля 2019

Почему получается, что отображается только вертикальная линия, а не горизонтальная линия?

Я просмотрел другой пост, в котором использовались те же строки кода, которые использовались для построения вертикальной и горизонтальной линии, и это сработало.для них.

График

# Variables
x_stop = 1
x = 0
y = -1
h = 0.5 # Stepsize
x_i = x # starting point, x-coordinate
y_i = y #starting point, y-coordinate

# Calculations #

# Diff.Eq
def dydx(x,y):
    f = y*y - x*y
    return f

print("-----------------------------")
while x < x_stop:
    print("x-value: " + str(x) + " y-value: " + str(round(y,4)))
    yprime = dydx(x,y) # y'
    delta_y = h*yprime # Δy
    x_values.append(x) # append x-coordinate
    corr_y_values.append(y) # append corresponding y-coordinate
    x += h
    y += delta_y

# PLOTTING THE SOLUTION #

# Plotting the points  
plt.plot(x_values, corr_y_values, color="blue", lw=1.2)

# Naming the x axis 
plt.xlabel('x - axis') 
# Naming the y axis 
plt.ylabel('y - axis')   
# Giving a title 
plt.title("y\' = " + diff)

# setting x and y axis range 
plt.ylim((y_i-0.2), (y+0.2)) 
plt.xlim((x_i-0.2), (x_stop+0.2))

# Showing the graph
plt.grid(True)

# Horizontal line
plt.hlines(y=0, xmin=(x_i-0.2), xmax=(x_stop+0.2), color='black', lw=1.0)

# Vertical line
plt.vlines(x=0, ymin=(y_i-0.2), ymax=(y+0.2), color='black', lw=1.0)

plt.savefig('plot.png')

1 Ответ

0 голосов
/ 27 февраля 2019

Ваши значения по оси Y отрицательны и меньше нуля.

Попробуйте это:

plt.hlines(y=-0.2, xmin=(x_i-0.2), xmax=(x_stop+0.2), color='black', lw=1.0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...