我目前正在从事一个使用全息视图的项目,我需要帮助。我正在创建一个热图,用于绘制给定模拟回合与模拟步骤的模型值。当回合或步数很少时,热图看起来不错。但是,如果增加如下所示的轮数或步数,轴将变得非常拥挤。有什么方法可以在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的数量无法正常工作。
答案 0 :(得分:0)
在这里,您有规则间隔的数字轴,因此可以将hv.HeatMap
替换为hv.Image
。 hv.Image将轴视为数值,因此可以跳过数值,并应允许您控制xticks。或者,您可以使用xrotation = 90旋转标签,以使它们不重叠。如果轴的间距不规则,则可以使用hv.QuadMesh。