Holoviews Heatmap X-axis Форматирование - PullRequest
0 голосов
/ 08 февраля 2019

В настоящее время я работаю над проектом, который использует holoviews, и я прошу помощи.Я создаю тепловую карту, которая отображает значение модели для данного этапа моделирования против этапа моделирования.Тепловая карта выглядит хорошо, когда есть только небольшое количество раундов или шагов.Тем не менее, оси становятся очень тесными, если я увеличу количество кругов или шагов, как показано ниже.Можно ли каким-либо образом отобразить только несколько отметок на оси X или Y (например, только цифры 0, 15, 30, 45 и 60 на оси x в примере, показанном ниже)?

Переполненная ось X из-за слишком большого количества шагов в каждой симуляции

Мой код выглядит следующим образом:

#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 голосов
/ 08 февраля 2019

Здесь вы регулярно располагаете числовые оси, поэтому вы можете заменить hv.HeatMap на hv.Image. hv.Image обрабатывает оси как числовые значения и, таким образом, может пропускать значения, что должно позволить вам контролировать переходы.Или вы можете использовать xrotation = 90, чтобы повернуть метки, чтобы они не перекрывались.И вы можете использовать hv.QuadMesh , если ваши оси не расположены регулярно.

...