删除散景中四字形之间的线

问题描述

我正在尝试使用正方形容器(而不是十六进制元素)来创建2D直方图,并且我正在使用Quad来这样做。

首先,我使用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',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,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

功能是因为它创建了一个图形,但是该图形在四边形元素之间的边界处有不愉快的线条。

Quad histogram

我找不到参数line_width,line_color和line_alpha的设置的任何组合,这些设置将摆脱这些行。设置的组合是否可以完全消除这些行?

如果没有,我应该如何创建带有方形框的2D直方图?

解决方法

解决这个问题的技巧是将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)

所需的情节:

Desired plot

我以为我在问这个问题之前已经尝试了所有排列。我不确定为什么较小的line_width使线条更明显。正如@EugenePakhomov建议的那样,您也可以完全省略line_width。大概是因为默认设置足够大,不会引起“啮合”。