[英]Display Bokeh labels values correct to 2 decimal places (floating point precision error)
我正在使用 Bokeh 创建一个热图,数据源是 Pandas 数据框( monthly_rets
)。 标签被填充值从一个称为列returns
在DF,这是float数据类型的。 一些标签显示有非常多的小数位 (0.130000000007)。
如何将热图单元格标签中显示的值限制为仅显示 2 个小数位?
我目前的代码如下:
source = ColumnDataSource(monthly_rets)
plot = figure(title="Monthly Returns (%)",
x_range=months, y_range=years,
plot_height=300, plot_width=800)
plot.rect(x="rtn_month", y="rtn_year", width=1, height=1,
source=monthly_rets,
fill_color={'field': 'returns', 'transform': mapper},
name="returns")
labels = LabelSet(x="rtn_month", y="rtn_year", text="returns",
text_font_size="10pt", source=source,
text_align='center')
plot.add_layout(labels)
我不确定,但试试round(source,2)
? 或者,如果你只是想切断其余的source = int(source * 100) / 100
事实证明 Bokeh 需要显示一个字符串,并且所有字符串操作都需要在将其传递给 Bokeh 数据源之前进行。 要解决此问题,您需要按如下方式强制 Pandas 列:
monthly_rets['returns'] = monthly_rets['returns'].astype(str)
monthly_rets['returns'] = monthly_rets['returns'].str.slice(0,5)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.