簡體   English   中英

Bokeh中X軸上的日期時間

[英]Datetime on an X Axis in Bokeh

我在了解日期時間在Bokeh中的工作方式時遇到了麻煩。

我的代碼在x軸上輸出毫秒,如果軸類型為“ datetime”,這似乎是默認值,但我希望每5年將其間隔一次。

我如何在Bokeh中做到這一點? 日期是在1950年之前,所以我不能使用時間戳記。 當我排除datetime軸類型時,它將在x軸上將每個單個值顯示為刻度。 當我嘗試將輸入的數據更改為日期時間對象時,Bokeh拒絕了它。

我已經閱讀了有關該主題的其他文章,以及Bokeh在DatetimeTickFormatter上的文檔,這似乎也不適合我。

散景中的日期時間軸

具有自定義日期時間/時間戳值的Bokeh FixedTicker

https://docs.bokeh.org/en/latest/docs/reference/models/formatters.html?highlight=formatters#module-bokeh.models.formatters

我針對該情節的所有代碼如下:

r = requests.get('https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json')
    data = json.loads(r.text)

chart_data = {
    'date': [a[0] for a in data['data']], #this is the problem data
    'gdp': [a[1] for a in data['data']],
}

source = ColumnDataSource(chart_data)
hover = HoverTool(
    tooltips=[
        ('GDP', '@gdp{$0,0.00}'),
        ('Date', '@date{%Y - %B}'),
    ],
    formatters={
        'date' : 'datetime',
    }
)

bar = figure(x_range=chart_data['date'],
             x_axis_type='datetime',
             plot_height=750,
             plot_width=1000,
             tools='wheel_zoom, reset, save',
             title=data['source_name'])
bar.vbar(x='date', top='gdp', width=0.9, source=source)
bar.add_tools(hover)

#visual settings

bar.xaxis.formatter = DatetimeTickFormatter(years = ['%Y'])
bar.xaxis.major_label_orientation = 'vertical'
bar.xaxis.minor_tick_line_color = None
bar.xgrid.grid_line_color = None

bar.yaxis.formatter = NumeralTickFormatter(format='$0,0.00')
bar.ygrid.grid_line_color = None

show(bar)

謝謝您的幫助,這讓我發瘋了!

感謝bigreddot的幫助。 我的問題是,由於我設置了x_range屬性,而不是將其默認為datetime,因此我的繪圖充當了分類范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM