Python Plotly时区错误地设置在X轴烛台中



当我使用DateTime绘图时,它显示了错误的时间,例如8/12/2017 10:00 AM,但情节的剧情节目是2017年8月12日2:00 AM。

我想将烛台用datetime绘制为x轴,并且按照以下内容初始化了日期时间:

    today = datetime.datetime.now()
    self.start_time = today.replace(second=0, microsecond=0)
    num_data_points = 90
    # define OHLC data variable for plotting candles
    self.open_data = [0] * num_data_points
    self.high_data = [0] * num_data_points
    self.low_data = [0] * num_data_points
    self.close_data = [0] * num_data_points
    self.time_interval = datetime.timedelta(minutes=time_interval)
    self.datetime_data = [self.start_time+datetime.timedelta(minutes=i) for i in range(num_data_points)]

并将剧情如下:

    layout = go.Layout(
        plot_bgcolor = '#fafafa',
        yaxis = dict( domain = [0, 0.2], showticklabels = True ),
        yaxis2 = dict( domain = [0.25, 0.8], range=[self.y_min, self.y_max] ),
        legend = dict( orientation = 'h', y=0.9, x=0.3, yanchor='bottom' ),
        margin = dict( t=40, b=40, r=40, l=40 ),
        boxgroupgap = 0.0,
        boxgap = 0.0,
        title='Volume: {0}, Avg: {1:.2f}, Std: {2:.3f}'.format(
                self.volumn_sum,
                self.price_avg, 
                self.price_std,
            )
    )
    # print(self.datetime_data)
    # datetime_data = np.array(self.datetime_data, dtype='M8[us]')
    datetime_data = pd.Series(self.datetime_data).tz_convert('Hongkong')
    print('='*30, 'n', datetime_data)
    # ADD candlestick
    candle_trace = go.Candlestick(
        open = self.open_data,
        high = self.high_data,
        low = self.low_data,
        close = self.close_data,
        x = datetime_data,
        yaxis = 'y2',
        name = 'Candlestick',
        # increasing = dict(line=dict(color=INCREASING_COLOR)),
        # decreasing = dict(line=dict(color=DECREASING_COLOR)),
    )
    fig = go.Figure(data=data, layout=layout)
    plot(fig, 'stock plot')

我已经正确检查了DateTime的启动,例如8/12/2017 10:00 AM(即DateTime.DateTime(2017,12,8,10,0,0,0,0,0)),但情节的情节显示为8/12/2017 2:00 AM。

绘制结果

我尝试了以下方法,但没有任何对我有用的方法:1.添加os.environ ['tz'] ='香港2. datetime_obj = datetime_obj.replace(tzinfo = pytz.timezone('hongkong')

感谢您的关注,感谢您的任何帮助和讨论。

当您使用日期时间时,plotly 始终在UTC时间内显示它。据我所知,他们从未为您创建一个选择来修改该行为的选择。

但是,如果您将X轴数据作为字符串传递,我发现您将其绘制为DateTime,最终以您传递的方式显示它。 x = datetime_data.astype('str')应该做这项工作。

相关内容

  • 没有找到相关文章

最新更新