Обратный график графика - PullRequest
0 голосов
/ 16 марта 2019

Я пытался построить график, используя matplotlib Python. Данные, которые я хотел построить, это the data

Я пытаюсь построить y_i относительно t (t ось x и y_i ось y), но каким-то образом я получил этот график, graph image here

Вы можете видеть, что с этим что-то не так, и мы все это знаем (когда мы идем выше вдоль оси y, число становится меньше, чем выше). Предполагается, что график имеет отрицательный наклон, как это исправить? (Любая помощь будет оценена)

Вот мой код:

import matplotlib.pyplot as plt
import pandas as pd

e = 2.71828183
k = -0.043594
C = 100
h = 5

def y(t):
    y = C*(e**(k*t))
    return y

def f(Y):
    f = k*Y
    return f

def y_i(Y, F):
    y_i = Y + h*F
    return y_i

#Y = y(x)    
#F = f(Y)
data_luruh = {}
data_luruh['t'] = [x for x in range(0, 101, 5)]
data_luruh['y'] = [y(x) for x in range(0, 101, 5)]
data_luruh['y_i'] = [0 for x in range(0, 101, 5)]
data_luruh['g'] = [0 for x in range(0, 101, 5)]

data_luruh['y_i'][0] = 'NA'
data_luruh['g'][0] = 'NA'

a = 1
while a <= 20:
    data_luruh['y_i'][a] = y_i(y((a-1)*5), f(y((a-1)*5)))
    data_luruh['g'][a] = data_luruh['y'][a] - data_luruh['y_i'][a]
    a += 1

df = pd.DataFrame(data=data_luruh)
print(df)

t_data = data_luruh['t']
y_data = data_luruh['y']
yi_data = data_luruh['y_i']

plt.xlabel('t')
plt.plot(data_luruh['y_i'], 'go')
plt.show()

Ответы [ 2 ]

1 голос
/ 16 марта 2019

Не используйте "NA" для пропущенных значений: это строка, и другие значения будут также интерпретироваться как строка.Вместо этого, изменение строк на

import numpy as np
data_luruh['y_i'][0] = np.nan
data_luruh['g'][0] = np.nan

дает

graph with negative slope

1 голос
/ 16 марта 2019

Если вы добавите NA как строку, весь столбец данных будет обрабатываться как столбец object (тип numpy для строк).Таким образом, столбец y будет отсортирован лексикографически.

Вместо этого используйте np.nan, который внутренне рассматривается как число:

import numpy as np

data_luruh['y_i'][0] = np.nan
data_luruh['g'][0] = np.nan
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...