首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在HoloViews中设置记号和字体选项?

如何在HoloViews中设置记号和字体选项?
EN

Stack Overflow用户
提问于 2019-04-06 03:56:34
回答 1查看 738关注 0票数 0

我想在HoloViews中配置我的默认选项,以匹配我在Bokeh图中使用的那些选项,但是虽然我可以在HoloViews文档中找到许多等价物,但我不能确定其他人的等价物是什么。

例如,我从可以在HoloViews文档中找到的那些文档开始,使用

代码语言:javascript
复制
opts.defaults(
    opts.Scatter(fill_color='black', line_color='gray', fill_alpha=0.1, line_alpha=1.0, 
                 hover_fill_color='yellow', hover_line_color='black', hover_fill_alpha=1.0, hover_line_alpha=1.0,
                 nonselection_fill_color='gray', nonselection_line_color=None, nonselection_alpha=0.2, 
                 selection_fill_color='black', selection_line_color='white', selection_alpha=1.0, 
                 size=6, line_width=1),
    opts.Histogram(fill_color='gray', fill_alpha=0.9, line_width=1, line_color='gray'),
    opts.Text(text_color='green')
)

但是对于许多其他的,特别是关于字体和对刻度长度和颜色的控制,我找不到对应的东西。在Bokeh中,我可以为给定的图设置我感兴趣的选项,如下所示

代码语言:javascript
复制
p = figure(...)
# ...

p.xaxis.axis_label = x_label
p.yaxis.axis_label = y_label
p.xaxis.axis_label_text_font = FONT
p.axis.axis_label_text_color = "gray"
p.axis.axis_label_text_font_style = "normal"

p.axis.axis_line_color = "gray"
p.axis.major_label_text_color = "gray"

p.axis.major_tick_line_color = "gray"
p.axis.minor_tick_line_color = "gray"

p.axis.minor_tick_in = 0
p.axis.major_tick_in = 0
p.axis.major_tick_out = 5  
p.axis.minor_tick_out = 2

p.grid.grid_line_alpha = 0.5
p.grid.grid_line_dash = [6, 4]

p.title.text_color = "gray"
p.title.text_font = FONT
p.title.text_font_style = "normal"

p.title.align = "center"

p.toolbar.autohide = True

但我不确定如何使用opts.defaults在HoloViews中设置这些。

如何使用HoloViews设置这些选项?是否存在某种通用机制来将这些Bokeh选项“传递”给opts.defaults中的HoloViews

EN

回答 1

Stack Overflow用户

发布于 2019-04-08 22:38:59

根据documentation的说法,您应该能够获得对Bokeh Figure对象的引用,并至少使用plot hooks设置一些属性

代码语言:javascript
复制
import numpy as np
import holoviews as hv

hv.extension('bokeh')

def hook(plot, element):
    print('plot.state:   ', plot.state)
    print('plot.handles: ', sorted(plot.handles.keys()))
    print(plot.handles['xaxis'])
    print(plot.state.grid)
    print(plot.state.title)

    plot.state.title.align = "center"
    plot.state.title.text = 'Scatter Plot'

    plot.handles['xaxis'].minor_tick_in = 0
    plot.handles['xaxis'].major_tick_in = 0
    plot.handles['xaxis'].major_tick_out = 5
    plot.handles['xaxis'].minor_tick_out = 2
    plot.handles['xaxis'].axis_label = 'X-AXIS-GREEN'
    plot.handles['yaxis'].axis_label = 'Y-AXIS-RED'
    plot.handles['xaxis'].axis_label_text_color = 'green'
    plot.handles['yaxis'].axis_label_text_color = 'red'

    plot.handles['yaxis'].axis_label_text_color = 'red'

scatter = hv.Points(np.random.randn(1000, 2))
scatter = scatter.opts(hooks = [hook])

renderer = hv.renderer('bokeh')
renderer.save(scatter, 'testHV')

结果:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55542537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档