У меня возникли проблемы с использованием matplotlib и использованием типа заполнения. Я прикрепил изображение того, как выглядит мой plt.fill. Я создал график из фрейма данных, содержащего даты в первом столбце, а затем вычисленные значения в следующем столбце. Я бы с удовольствием разместил образцы данных, если это необходимо, но я хотел показать, что происходит с моим сюжетом ... Кажется очень странным, что он заполняется ниже 0 (если я здесь что-то не хватает), а затем, в конце, он меняет все вдоль диагональной линии.Matplotlib plot.fill обрабатывает данные некорректно, заполняет отрицательные значения и сдвигает
Любая помощь очень ценится!
import pandas as pd
import numpy as np
import os as os
import matplotlib as mpl
import matplotlib.pyplot as plt
import datetime as dt
#set working path
working_path = '/Users/Earth/desktop/mydata'
os.chdir(working_path)
# name csv files to variables
chilled_water_supply = 'chilled_water_supply1.csv'
chilled_water_return = 'chilled_water_return1.csv'
chilled_water_flow = 'CofK_CW_Flow.csv'
#read correct date time format from csv file
datetimeparse1 = lambda x: pd.datetime.strptime(x, '%m/%d/%Y %H:%M')
#import chilled water temperautres and flow
df_chwsup = pd.read_csv(chilled_water_supply, parse_dates = ['Date_Time'], date_parser = datetimeparse1)
df_chwret = pd.read_csv(chilled_water_return, parse_dates = ['Date_Time'], date_parser = datetimeparse1)
df_chwflow = pd.read_csv(chilled_water_flow, parse_dates = ['Date_Time'], date_parser = datetimeparse1)
#set start date time and length of period
startdate = dt.datetime(2015,7,14,11,41,0)
numintervals = (14*24*60)
#create data frame with index of row numbers and correct date time period
df_datetime = pd.DataFrame(pd.date_range(startdate ,periods = numintervals, freq = "1min"), columns = ["Date_Time"])
#creating master data frame with outputs
df_mstr1 = pd.merge(df_datetime, df_chwsup, how = 'left', left_on = 'Date_Time', right_on = 'Date_Time')
df_mstr2 = pd.merge(df_mstr1, df_chwret, how = 'left', left_on = 'Date_Time', right_on = 'Date_Time')
df_mstr3 = pd.merge(df_mstr2, df_chwflow, how= 'left', left_on = 'Date_Time', right_on = 'Date_Time')
df_mstr3['tons'] = 500*(1/12000)*df_mstr3['flow_gpm']*(df_mstr2['chwr_temp_F'] - df_mstr1['chws_temp_F'])
#plot cooling tons over date time period
x1 = df_mstr3['Date_Time']
y1 = df_mstr3['tons']
plt.Line2D(x1,y1)
plt.xlim(dt.datetime(2015,7,14), dt.datetime(2015,7,28))
plt.ylim(-100,300)
plt.show()
Можете ли вы предоставить код, чтобы взглянуть на? – DimKoim
Я включил код ... должен ли я включать файлы данных? – Prevost
Я добавил код ошибки, который возникает при использовании plt.Line2D ... Я построил его с помощью ggplot, и он работает с этим пакетом, но я хотел бы использовать matplotlib и выяснить, что здесь происходит. – Prevost