Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python plotly-直线不从yaxis开始_Python_Plotly - Fatal编程技术网

Python plotly-直线不从yaxis开始

Python plotly-直线不从yaxis开始,python,plotly,Python,Plotly,下面的代码是一个示例,因为我无法重现该问题。图2显示了我的问题,线不是从左边开始的(在yaxis上)。输入数据似乎是相同的,绘制图表的代码是完全相同的 import pandas as pd from pandas.tseries.offsets import DateOffset sdate = date(2021,1,31) edate = date(2021,8,30) date_range = pd.date_range(sdate,edate-timedelta(days=1),fr

下面的代码是一个示例,因为我无法重现该问题。图2显示了我的问题,线不是从左边开始的(在yaxis上)。输入数据似乎是相同的,绘制图表的代码是完全相同的

import pandas as pd
from pandas.tseries.offsets import DateOffset

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.loc[len(df_test)+1,'Datum']=(df_test['Datum'].min()-DateOffset(months=1))
df_test=df_test.sort_values(by='Datum',ignore_index=True)
df_test['indexed'] = [1,2,3,4,5,6,7,7]
df_test['index'] = [5,5,3,4,5,6,7,7]

data = df_test
sdate=data['Datum'].min()
title = 'Gesamtperformance'
font ='Helvetica'

fig = go.Figure()
fig.add_trace(go.Scatter(x=data['Datum'], y=data['indexed'],
                         line = dict(color='blue', width=4),
                         mode='lines',
                         name=title))

fig.add_trace(go.Scatter(x=data['Datum'], y=data['index'],
                         line=dict(color='black', width=4, dash='dot'),
                         mode='lines',
                         name=title))

fig.layout = go.Layout(yaxis=dict(tickformat=".0%"))
fig.update_layout(font_family=font,
                  font=dict(
                      family=font,
                      size=30),
                  legend=dict(font=dict(family=font, size=30, color="black")))

fig.update_layout(yaxis_title="Performance",
                  margin=dict(l=100, r=0, t=0, b=120),
                  plot_bgcolor='grey',
                  legend=dict(
                      orientation="h",
                      yanchor="top",
                      y=-0.065,  # distance legend to chart
                      xanchor="auto",
                      x=0.5)
                  )
fig.update_xaxes(dtick="M6", tickformat="%b %Y")
fig.update_layout(xaxis=dict(tick0=sdate))  # sets start date
fig.update_layout(width=1485, height=1100)

plotly.io.write_image(fig, file='test_line.png', format='png')

输出示例代码,其中行从yaxis开始:

输出,其中行不以yaxis(左)开头,我不知道为什么:


也许有人知道如何开始左边的线路。谢谢

考虑在
更新布局
中使用
x\u轴范围
。代码如下:

fig.update_layout(xaxis_range=[sdate, edate])

fig.update\u布局(xaxis\u范围=[sdate,edate])
有效吗?@sotmot:有效,谢谢!不客气:)。那我就把它作为答案加上。