散景:垂直条的宽度不会改变

问题描述 投票:2回答:2

我遇到了一个我无法找到解决方案的问题。我想更改我的绘图的条宽,但无论我放在方法vbar的WIDTH参数中的数字,图表都保持不变。

The plot with WIDTH=100

enter image description here

The plot with WIDTH=500

enter image description here

Apply Zoom is not a solution. The bar seems like a line

enter image description here

这是代码:

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)

这是我的数据帧的信息:

RangeIndex:133个条目,0到132个数据列(共5列):DT 133非null datetime64 [ns] TRANSACT_IN 133非null int64 TRANSACT_OUT 133非null int64 SUM_IN 133非null int64 SUM_OUT 133非null int64 dtypes:datetime64ns,int64(4)

python pandas bokeh
2个回答
5
投票

日期时间轴上的基础比例是毫秒 - 自 - 纪元。所以,目前你正在看几个月的500米宽的酒吧。你需要使条形更宽。例如,“一天”宽的酒吧需要:

width=24*60*60*1000 # 86400000

或者使用最近的Bokeh版本,您也可以使用datetime.timedelta,例如

width=timedelta(days=1)

0
投票

在这种情况下,您可以使用属性line_width来操纵vbar的宽度

© www.soinside.com 2019 - 2024. All rights reserved.