Построение перевернутого графика

#python #pandas #matplotlib #plot

#python #панды #matplotlib #построение

Вопрос:

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

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

Вы можете видеть, что с ним что-то не так, и мы все это знаем (по мере того, как мы поднимаемся выше по оси 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()
  

Ответ №1:

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

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

 import numpy as np

data_luruh['y_i'][0] = np.nan
data_luruh['g'][0] = np.nan
  

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

1. Вам тоже спасибо за помощь. Я надеюсь, что смогу сделать больше :).

Ответ №2:

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

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

дает

график с отрицательным наклоном