#python #bokeh
#python #боке
Вопрос:
Я пытаюсь создать 2D-гистограмму с квадратными ячейками (вместо шестнадцатеричных элементов), и для этого я использую quad.
Сначала я создаю 2D-гистограмму, используя numpy (не показан для краткости).
Затем я рисую его с использованием квадратичного символа:
def plotHist2D(self,name):
"""
Creates a 2D histogram figure in Bokeh.
Parameters
----------
name : string
The name of one of the column data sources in self.files.
Returns
-------
A bokeh plot object.
"""
cds = ColumnDataSource(self.makeHist2D(name))
plot_cmap = linear_cmap('tops','Turbo256',0,1,)
bar_cmap = LinearColorMapper(palette='Turbo256',low=0,high=1)
p = figure(plot_height=350,plot_width=350,
title='kW/mm^2', x_axis_label='x (m)',
y_axis_label='y (m)',
x_range=(-0.05,0.05),
y_range=(-0.05,0.05),
output_backend="webgl",
toolbar_location="above")
p.quad(top='yrights',bottom='ylefts',left='xlefts',right='xrights',
fill_color=plot_cmap,line_color=plot_cmap,
line_width=0.1,line_alpha=1.0,
alpha=1.0,source=cds)
color_bar = ColorBar(color_mapper=bar_cmap,width=8,
border_line_color=None,location=(0,0))
p.add_layout(color_bar,'right')
return p
Это работает, поскольку создает фигуру, но на фигуре есть неприятные линии на границе между четырехугольными элементами.
Я не могу найти какую-либо комбинацию настроек для параметров line_width, line_color и line_alpha, которые позволят избавиться от этих строк. Существует ли какая-либо комбинация настроек, которая полностью удалит эти строки?
Если нет, то как я должен создавать эту 2D-гистограмму с квадратными ячейками?
Комментарии:
1. Удалите аргументы
line_width
иline_alpha
. Если это не сработает, пожалуйста, предоставьте минимальный воспроизводимый пример, включая данные, которые могут быть использованы для воспроизведения поведения.
Ответ №1:
Хитрость в этом заключается в том, чтобы использовать line_color
с тем же цветовым отображением и не устанавливать line_width
слишком маленький размер.
Следующий вызов quad работает.
p.quad(top='yrights',bottom='ylefts',left='xlefts',right='xrights',
fill_color=plot_cmap,
line_color=plot_cmap,
line_width=1.0,line_alpha=1.0,
alpha=1.0,source=cds)
Желаемый график:
Я думал, что перепробовал все перестановки, прежде чем задавать этот вопрос. Я не уверен, почему меньший размер line_width
делает линии более заметными. Как предлагает @EugenePakhomov, вы также можете просто полностью исключить line_width
. Предположительно, это связано с тем, что значение по умолчанию достаточно велико, чтобы не вызывать «зацепления».