Holoviews热图X轴格式

时间:2019-02-08 00:59:41

标签: python heatmap holoviews

我目前正在从事一个使用全息视图的项目,我需要帮助。我正在创建一个热图,用于绘制给定模拟回合与模拟步骤的模型值。当回合或步数很少时,热图看起来不错。但是,如果增加如下所示的轮数或步数,轴将变得非常拥挤。有什么方法可以在X或Y轴上仅显示一些刻度线(例如,在下面的示例中,在x轴上仅显示数字0、15、30、45和60)?

Crowded x-axis due to too many steps in each simulation

我的代码如下:

#Generate a heatmap for each element
for element_key in loop_elements:
    heatData = []
    for i in range(runs):
        heatValues = plot_data[element_key][i]['y']
        for j in range(steps):
            heatElement = [(j, i, heatValues[j])]
            heatData += heatElement
    heatImage = hv.HeatMap(heatData, kdims=['x', 'y'], vdims=['z'])
    heatImage.opts(cmap=cmap, colorbar=True, title=element_key, xlabel="Simulation Step", ylabel="Simulation Round", toolbar=None, height=800, width=800)
    heatImage = heatImage.redim.range(z=(0,numStates-1))
    heatImage = heatImage.opts(xticks=5)
    hv.save(heatImage, os.path.join(outputFilepath, "HeatMap" + element_key + ".png"))` 

很遗憾,使用.opts指定xticks的数量无法正常工作。

1 个答案:

答案 0 :(得分:0)

在这里,您有规则间隔的数字轴,因此可以将hv.HeatMap替换为hv.Imagehv.Image将轴视为数值,因此可以跳过数值,并应允许您控制xticks。或者,您可以使用xrotation = 90旋转标签,以使它们不重叠。如果轴的间距不规则,则可以使用hv.QuadMesh