我正在使用plot.circle绘制评分系统。我试图将成绩表示为标签而不是数字。例如。当A + = 1,A = 2,B = 3,C = 4,D = 5.
图表上绘制的点数是等级的一小部分。例如。 point1 = 1.6,它位于A +和A之间。
我找不到将轴的标签更改为代表我的成绩标签的方法,因此我尝试创建第二个轴,一个分类轴,并隐藏原始轴(包含分级值的轴)。 )
我采用这种方法的问题是我的分类轴'刻度不与原始轴'排列。 单一区间自动收录器确保两个轴的轴数匹配。但是蜱仍然不对齐。
当我设置原始轴的y_range时,主刻度线从图表底部开始,到达顶部。分类轴的行为不同。
这是我的代码:
from bokeh.plotting import figure, output_file, show
from bokeh.models.tickers import SingleIntervalTicker
from bokeh.models import CategoricalAxis, FactorRange
output_file("axes.html")
x = [1,2,3,4,5,6]
y = [1,2.3,3,4.5,5,6]
p = figure(plot_width=400, plot_height=400)
#p = figure(plot_width=400, plot_height=400, y_range=[0,10])
p.circle(x, y, size=10)
s_i_ticker = SingleIntervalTicker()
s_i_ticker.interval = 1
s_i_ticker.num_minor_ticks = 0
p.yaxis[0].ticker= s_i_ticker
#p.yaxis[0].bounds = (1, 10)
#p.yaxis[0].visible = False
factors = ["A+", "A", "B", "C", "D", "E", "F"]
f_range = FactorRange(factors=factors)
help(CategoricalAxis)
p.extra_y_ranges = {"foo": f_range}
p.circle(x, factors, color="blue", y_range_name="foo")
new_axis = CategoricalAxis(y_range_name="foo")
#new_axis.bounds = (1, 10)
#new_axis.ticker= s_i_ticker
p.add_layout(new_axis, 'left')
show(p)
我无法发布结果图表的屏幕截图,因为我无法在stackoverflow上发布图像。代码可以按原样运行。
任何解决方案?想法?建议?
答案 0 :(得分:-2)
我使用解决方法解决了我的问题:
plot.text(..)
我正在将文字作为'水印'在图表中的条带中,以便显示该区域的含义。例如。该地区的积分位于' B'等级区域。