散景轴造型问题

问题描述 投票:0回答:1

在下面的散景图中,我想删除y轴上的细垂直线,您可以在每个主要刻度线上看到。每个主要刻度应该是完全白色。以下代码将允许您复制图表:

from bokeh.palettes import Category20
from bokeh.plotting import figure, output_file, show
from bokeh.models import DatetimeTickFormatter, NumeralTickFormatter, DatetimeTicker

import pandas as pd
import numpy as np

data = pd.Series(np.cumprod(1 + np.random.normal(0, 0.01, 1000)), index=pd.bdate_range(start='2010-01-01', periods=1000))

output_file('test.html')

p = figure(x_axis_type='datetime', plot_width=1000, plot_height=500, y_axis_type='log')
p.title.align = 'center'
p.title.text_font = 'calibri'
p.title.text_font_size = '16pt'
p.title.text_color = 'black'

p.line(data.index, data.values, color=Category20[3][0], line_width=3)

p.xaxis.major_tick_line_color = None
p.xaxis.minor_tick_line_color = None
p.xaxis.formatter = DatetimeTickFormatter(days=['%Y-%m-%d'], months=['%B %Y'], years=["%b '%y"])
p.xaxis.axis_line_width = 5
p.xaxis.axis_line_color = 'black'
p.xaxis.axis_label_text_font = 'calibri'
p.xaxis.axis_label_text_font_style = None

p.yaxis.major_tick_line_color = 'white'
p.yaxis.major_tick_line_width = 5
p.yaxis.minor_tick_line_color = None
p.yaxis.formatter = NumeralTickFormatter(format='0.00')
p.yaxis.axis_line_width = 5
p.yaxis.axis_line_color = 'black'
p.yaxis.axis_label_text_font = 'calibri'
p.yaxis.axis_label_text_font_style = None

p.xgrid.grid_line_color = None
p.ygrid.grid_line_color = None
p.ygrid.visible = False

# p.background_fill_color = None
# p.border_fill_color = None
p.outline_line_color = None

show(p)

提前致谢!

python charts bokeh
1个回答
0
投票

将刻度颜色设置为'white'意味着仍然绘制刻度线,它们只是用白色绘制。由于在轴规则之后绘制了刻度,因此您会看到白色刻度中断轴的结果。没有用户可配置的方式来更改绘制轴元素的顺序。但是,您可以通过将颜色设置为None来防止绘制刻度:

p.yaxis.major_tick_line_color = None

或者,您可以将major_tick_line_alpha设置为零。

© www.soinside.com 2019 - 2024. All rights reserved.