我目前正在做一个使用全息视图的项目,我请求帮助。我正在创建一个热图,它为给定的模拟轮次与模拟步骤绘制模型的值。当只有少量的轮次或步数时,热图看起来很好。但是,如果我增加轮数或步数,轴会变得非常拥挤,如下所示。有没有办法在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来指定xtick的数量并不能正常工作。
发布于 2019-02-08 21:22:41
在这里,您有规则间隔的数值轴,因此您可以用hv.Image替换hv.HeatMap。hv.Image将轴视为数值,因此可以跳过这些值,并且应该允许您控制xtick。或者,您可以使用xrotation=90来旋转标签,使它们不会重叠。如果轴的间距不是很规则,也可以使用hv.QuadMesh。
https://stackoverflow.com/questions/54584670
复制相似问题