Извините, я новичок в заговоре.
У меня есть четкий pd.DataFrame с датами в порядке.
Начальная дата имеет следующий формат: ГГГГММДД.
Когда я пытался преобразовать ее, в графическом виде дата отображалась бы как то, что я могу описать только как случайные числа (в тексте при наведении). После долгих поисков я нашел мой обходной путь (см. Код) как единственное решение.
Но к реальной проблеме: Как видите, каждый месяц имеет разное количество записей. Когда я опускаю день, графически помещает все записи месяца в одно и то же место.
Когда я использую x = df.index, я получаю лучший результат, но у меня нет визуализации даты. Я хотел бы, чтобы между каждой записью были четные промежутки и чтобы была четкая визуальная подсказка, показывающая, какой записи принадлежит какой месяц.
Я добавлю изображение в конец поста, чтобы лучше объяснить мои проблемы (engli sh не мой родной язык ..)
Код:
import pandas as pd
import plotly.express as px
columns = ["date", "farts"]
df = pd.read_csv('test.csv', sep=',', engine='python', names=columns)
# Using a smaller made up csv file for testing. It looks like this:
# 20200119, 50
# 20200115, 40
# 20200105, 30
# 20191215, 40
# 20191120, 35
# 20191115, 12
print(df)
df["date"] = pd.to_datetime(df["date"], format="%Y%m%d")
df["date"] = df["date"].dt.strftime('%Y-%m')
print(df)
#works very well so far:
# before:
# date farts
# 0 20200119 50
# 1 20200115 40
# 2 20200105 30
# 3 20191215 40
# 4 20191120 35
# 5 20191115 12
# after:
# date farts
# 0 2020/01 50
# 1 2020/01 40
# 2 2020/01 30
# 3 2019/12 40
# 4 2019/11 35
# 5 2019/11 12
fig = px.bar(df, x="date", y='farts', width=1000, height=350)
fig.show()
У вас есть какие-нибудь идеи, что я могу сделать, чтобы получить более привлекательный график?
картинка, чтобы помочь понять: https://i.imgur.com/3Vi9xFi.png
Редактировать: Попробовал немного вокруг, и я становлюсь все более и более разочарованным. Либо не отображается, дата меняется на противоположную, и т.д. place.
Если я go с df.index, я не могу назвать записи по оси x в соответствии со столбцом даты.