簡體   English   中英

更改散景標簽注釋的文本大小

[英]Change the text size of Bokeh label annotations

我正在向 Bokeh 條形圖添加標簽注釋:

labels = LabelSet(x='roomsavailable', y='area', text='roomsavailable', level='glyph',
        x_offset=-15, y_offset=-13.5, source=source, render_mode='canvas')

p.add_layout(labels)

有誰知道是否可以調整文本的大小?

在文檔中,它描述了text_font_size屬性:

文本的文本字體大小值。

所以嘗試類似的東西

YOUR_FONT_SIZE = 10
labels = LabelSet(x='stock',
                  y='area',
                  text='roomsavailable',
                  text_font_size=YOUR_FONT_SIZE,
                  level='glyph',
                  x_offset=-15,
                  y_offset=-13.5,
                  source=source,
                  render_mode='canvas')

text_font_size 接受像 YOUR_FONT_SIZE = '10pt' 這樣的字符串值

您還可以添加以下代碼:

p.xaxis.axis_label_text_font_size = '15pt'
p.yaxis.axis_label_text_font_size = '15pt'

這是對@MarkWeston 現有答案的擴展。

讓我們看看下面這個最小的例子:

from bokeh.io import show
from bokeh.models import ColumnDataSource, LabelSet
from bokeh.plotting import figure

p = figure()

source = ColumnDataSource(dict(x=[x for x in range(1,8)], 
                               y=[1]*7, 
                               names=[str(x) for x in range(1,8)]
                              )
                         )

p = figure(x_range=(0, 8), y_range=(0, 2), plot_height=100, tools='' )

labels = LabelSet(x='x', y='y', text='names', level='overlay', text_align='center',
              x_offset=0, y_offset=-8, source=source, render_mode='canvas')
p.add_layout(labels)

p.circle(x='x', y='y', radius=0.3, alpha=0.3, source=source)

p.xgrid.visible = False
p.ygrid.visible = False
p.xaxis.visible = False
p.yaxis.visible = False

show(p)

這是示例的輸出。

現在我們可以按照@MarkWeston 的回答並預先設置我們想要的參數。 如果您創建一個LabelSet您可以傳遞LabelSet 文檔中解釋的所有參數。

但是還有第二種方法,如果您想在調用p.add_layout()后更改設置。

函數p.add_layout(labels)帶有一個名為place的參數。 有效值為leftrightabovebelow和默認值center 有關更多信息,另請參閱add_layout文檔

為簡單add_layout() ,我們假設您使用默認值center調用add_layout()函數。 現在我們需要將LabelSet放置在p.center中包含的列表的哪個索引處。

我們可以通過運行來獲取這些信息

[i for i, item in enumerate(p.center) if isinstance(item, LabelSet)]
>>> [2]

這將返回“ 2 ”。 請注意,在 0 和 1 處有不可見的網格。

現在我們可以更改此LabelSet調用行的參數設置,例如

p.center[2].text_color = {'value':'#0000ff'}
p.center[2].text_size = {'value':'11pt'}
p.center[2].text_size = 'TimesNewRoman'

還有更多。

如果您再次使用show(p)繪制圖形,您可以看到變化,它看起來像這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM