如何使用货币格式化bokeh Xaxis刻度

蒂莫西·伦巴德

我正在研究一个juypter笔记本,以制作一个项目符号图以比较两个值。情节渲染,但我想格式化xaxis代码以显示货币。这是我到目前为止所拥有的...

project = "Rocket"
targetspend = 15000
spend2date = 16600
data = [(project, targetspend, spend2date)]

from bokeh.io import show, output_notebook
from bokeh.plotting import figure

def make_bokeh_spend_bullet(data):
  output_notebook()
  if len(data) ==1:
      ph = 135

  elif len(data) >1 and len(data) < 3:
    ph =165
  else:
    ph = ( 6 * len(data) * 10)


  if data[0][2] < data[0][1] * 2:
    perf = data[0][2]
    limits = [0, data[0][1], data[0][1] *2]
  else:
    perf = data[0][2]
    limits = [0, data[0][1], data[0][2]]

  labels = ["OK", "Over budget", ]
  cats = [x[0] for x in data]

  p=figure(title="Project Spend", plot_height=ph, plot_width=600, y_range=cats)
  p.x_range.range_padding = 0
  p.grid.grid_line_color = None
  p.xaxis[0].ticker.num_minor_ticks = 0
  #p.xaxis[0].ticker.format('$0,0')

  for left, right, color in zip(limits[:-1], limits[1:], OrRd3[::-1]):
    p.hbar(y=cats, left=left, right=right, height=0.8, color=color)


  for x in data:
    if x[2] > x[1]:
      p.hbar(y=cats, left=0, right=perf, height=0.3, color="firebrick")
    else:
      p.hbar(y=cats, left=0, right=perf, height=0.3, color="gray")

  comp = [x[1] for x in data]
  p.segment(x0=comp, y0=[(x, -0.5) for x in cats], x1=comp,
          y1=[(x, 0.5) for x in cats], color="black", line_width=2)

  for start, label in zip(limits[:-1], labels):
    p.add_layout(Label(x=start, y=0, text=label, text_font_size="10pt",
                       text_color='black', y_offset=5, x_offset=15)) 
  return show(p)

output_notebook()

p = make_bokeh_spend_bullet(data)

在此处输入图片说明

我从bokeh文档中读到了有关NumeralTickFormatter(** kwargs)类的信息,但目前尚不清楚如何在图形中使用此格式选项。

蒂莫西·伦巴德

该代码仅需要更多帮助。

from bokeh.models import Label, Title, NumeralTickFormatter

然后将另一个作业添加到xaxis

p.xaxis[0].formatter = NumeralTickFormatter(format="$0")

下面是新图:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

情节:如何摆脱多余的 xaxis 刻度?

Python Bokeh工具-如何从bokeh显示带有日期时间格式化程序xaxis的hovertool?

python:如何摆脱由Plotly绘制的多余xaxis刻度?

使用 .set 后如何在 xaxis 上为所有 relplot 子图设置对数刻度小刻度

如何在Julia中使用Time数据获得更好的Plots.jl xaxis刻度标签?

如何使用DecimalFormat格式化货币?

如何使用JQuery格式化货币

如何为日期时间刻度格式化 x 标签

使用 Epoch 秒作为 X 轴值时,如何格式化 X 轴刻度标签?

Xaxis 上显示的刻度数

仅格式化选定的刻度标签

格式化轴刻度标签

如何使用货币 NumberFormatter 格式化负 0

在matplotlib中使用SymLogNorm归一化格式化颜色条刻度标签

如何在第一个和最后一个刻度上开始和结束动态生成日期时间高位图的xAxis

xAxis刻度的D3组标签

Highcharts 热图 xAxis 刻度对齐

Highstock:如何格式化xAxis十字线标签?

如何获得对xAxis标签,Highcharts格式化程序的先前值的访问?

Twig/Symfony 如何格式化货币

如何格式化Pandas / Matplotlib图,以便X轴刻度仅是小时和分钟?

如何在C3.js中格式化X轴刻度值

如何格式化熊猫中分位数条形图的x刻度标签

使用numberFormatter格式化货币

在可打印的Dash中格式化特定的刻度标签

动态重新格式化tkinter刻度值python 2.7

如何使用cl格式格式化货币(常见的lisp格式功能的clojure实现)

如何使用d3.js在xAxis上格式化时间

Matplotlib 对数刻度刻度格式