Все еще довольно плохо знаком с визуализацией данных и пытаюсь сделать простой график для отслеживания моей попытки похудеть.Хотя Matplotlib, кажется, делает что-то странное при составлении графика дат и не уверен, как указать для графика использование моих дат вместо того, чтобы пытаться всегда начинать с начала месяца
import pandas as pd
import numpy as np
dfOrg = pd.DataFrame({"Date": ["2019-1-7", "2019-1-14", "2019-1-21","2019-1-28","2019-2-4","2019-2-11",
"2019-2-18", "2019-2-25", "2019-3-4"],
"Weight:": [204.3,201,202.5,200.7,201.5,202.5,199.5,200.8,201.5]})
dfOrg["Date"] = pd.to_datetime(dfOrg['Date'])
maxDT = dfOrg["Date"].max()
missing = {}
missing["Date"] = pd.date_range(start=maxDT, end='2019-10-07', freq='7D',closed="right")
missing["Weight"] = []
for i in missing["Date"]:
missing["Weight"].append(np.NaN)
missingDF = pd.DataFrame(missing)
df = pd.concat([dfOrg, missingDF], ignore_index=True)
df.drop(["Weight"], axis=1, inplace=True)
df.rename(columns={"Weight:": "Weight"}, inplace=True)
import matplotlib.pyplot as plt
import matplotlib.dates as dates
import datetime
formatter = dates.DateFormatter('%b %d')
plt.plot(df["Date"], df["Weight"], color="g")
plt.xticks(rotation=70)
plt.ylabel("LBS")
plt.title("Weight Loss Progress")
plt.axhline(linewidth=4, color='gold', y=170, label="Goal")
plt.ylim(160, 210)
plt.legend(bbox_to_anchor=[1, 0.5], loc='center left')
plt.gcf().axes[0].xaxis.set_major_formatter(formatter)
plt.show()
Так что в идеале графикдолжен показывать мой вес, где даты идут с 2019-1-7 до 2019-10-07, что является моей целью и линией ворот.Вместо этого, когда я вижу график, он показывает
