web-dev-qa-db-ja.com

ボケ軸の目盛り数を調整する方法(小さな数字ではラベルが重なっています)

私は、垂直に積み重ねられて整列された図のマルチ図ボケプロットを持っています。プロットを垂直に配置したいので、y軸のラベルは水平ではなく垂直に回転します。

特定のシナリオでは、Bokehが生成するティックが多すぎるため、ティックラベルが完全に重なり、判読できなくなります。次に例を示します。

import bokeh.plotting as bp
import numpy as np

y = np.random.uniform(0, 300, 50)
x = np.arange(len(y))

bp.output_file("/tmp/test.html", "test")
plot = bp.figure(plot_width=800, plot_height=200)
plot.yaxis.axis_label_text_font_size = "12pt"
plot.yaxis.major_label_orientation = 'vertical'

plot.line (x,y)
bp.show(plot)

レンダラーを賢くして自動的に生成するラベルの数を減らす以外に、軸に配置するラベルの数を示す方法はありますか?

生成されるラベルの数は、10の累乗への親和性という点で、データの範囲に関係しているようです。

15
Jonathan Shore

これを指定する直接的な方法はまだないようです。関連する 問題 に従ってください。これは回避策です:

from bokeh.models import SingleIntervalTicker, LinearAxis

plot = bp.figure(plot_width=800, plot_height=200, x_axis_type=None)
ticker = SingleIntervalTicker(interval=5, num_minor_ticks=10)
xaxis = LinearAxis(ticker=ticker)
plot.add_layout(xaxis, 'below')

enter image description here

チケットの数は、intervalSingleIntervalTickerパラメーターを介して制御できます。

5
elyase

desired_num_ticksプロパティを使用して、ティック数を制御できるようになりました。ボケドキュメントの例を見てください(そしてこれ issue )。

たとえば、あなたの場合、次のようになります:plot.yaxis[0].ticker.desired_num_ticks = 10

14
Kevad