Я ищу решение, чтобы правильно показать x_axis. дата 2021-01-31 отображается как «февраль 2021». я хотел бы отобразить это как «Январь 2021 года». Спасибо за помощь!
sdate = date(2021,1,31)
edate = date(2021,8,30)
date_range = pd.date_range(sdate,edate-timedelta(days=1),freq='m')
df_test = pd.DataFrame({ 'Datum': date_range})
df_test['values'] = 10
fig = px.line(df_test, x=df_test['Datum'], y=df_test['values'])
fig.layout = go.Layout(yaxis=dict(tickformat = ".0%"))
fig.update_xaxes(dtick = "M1", tickformat = "%b %Y")
fig.update_layout(width=1485, height=1100)
plotly.io.write_image(fig, file='test_line.png', format='png')
Вы можете заставить такты начинаться с 2021-01-31
, установив начальную галочку на начальную дату ваших данных sdate
.
from datetime import date, timedelta
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
sdate = date(2021,1,31)
edate = date(2021,8,30)
date_range = pd.date_range(sdate,edate-timedelta(days=1),freq='m')
df_test = pd.DataFrame({ 'Datum': date_range})
df_test['values'] = 10
fig = px.line(df_test, x=df_test['Datum'], y=df_test['values'])
fig.layout = go.Layout(yaxis=dict(tickformat = ".0%"))
fig.update_xaxes(dtick = "M1", tickformat = "%b %Y")
## set tick0 to the starting date
fig.update_layout(
xaxis=dict(tick0=sdate),
width=1485, height=1100
)
fig.show()
Я должен отметить, что этот график может ввести в заблуждение, поскольку я считаю, что большинство людей интерпретируют каждую отметку как начало месяца (например, большинство людей подумают, что данные начинаются с 2021-01-01
), если вы не укажете день в вашем тиковом формате, но это зависит от вас, в зависимости от того, что вы хотите отобразить на своем графике.
Если вместо этого вы измените формат тика, переписав строку fig.update_xaxes(dtick = "M1", tickformat = "%b %d %Y")
, то вы получите следующий график: