我遇到了一个我找不到解决办法的问题。我想更改绘图的条形图宽度,但不管我在vbar方法的width参数中输入多少,图形保持不变。
The plot with WIDTH=100
python - 散景:竖线的宽度不变-LMLPHP
The plot with WIDTH=500
python - 散景:竖线的宽度不变-LMLPHP
Apply Zoom is not a solution. The bar seems like a line
python - 散景:竖线的宽度不变-LMLPHP
代码如下:

from bokeh.io import show, output_file
from bokeh.plotting import figure
import pandas as pd

df = pd.read_csv('Data/moviments.txt', delimiter='\t', encoding='utf-8')

output_file("bar_basic.html")

df['DT']=pd.to_datetime(df['DT'])

p = figure(x_axis_type='datetime',
           plot_width=1230,
           plot_height=500,
           title='Moviments')

p.vbar(x=df['DT'],top=df['SUM_IN'], width=100, fill_alpha=0.8, color='green')
p.vbar(x=df['DT'],top=df['SUM_OUT'], width=100, fill_alpha=0.8, color='red')

p.xgrid.grid_line_color = None

show(p)

这是我的数据帧的信息:
范围索引:133个条目,0到
132个数据列(共5列):DT 133非空
datetime64[ns]TRANSACT-IN 133非空int64 TRANSACT-OUT
133非空int64 SUM_IN 133非空int64 SUM_OUT
133非空int64数据类型:datetime64ns,int64(4)

最佳答案

datetime轴上的基础刻度是自epoch以来的毫秒数。所以,现在你看到的是500米宽的酒吧,跨越了几个月。你得把栏杆弄宽一点。例如,一个“一天”范围的酒吧需要:

width=24*60*60*1000 # 86400000

或者对于最新的Bokeh版本,您也可以使用datetime.timedelta,例如。
width=timedelta(days=1)

10-07 15:16