更改holoviews热图分类刻度标签

时间:2019-11-11 18:11:07

标签: python heatmap holoviews

我已经生成了一个holoviews热图图,并且想要编辑x和y轴上热图上的标签。现在,每个轴上的标签是1,2,3和4。我希望将其替换为每个4的不同字符串文本。

我尝试了以下操作,但无济于事:

holoviews_view.opts(xticks=[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]) 

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在Holoviews / Bokeh中,使用.opts(xticks = [])似乎尚不可行:
https://github.com/pyviz/holoviews/issues/2128

解决这个问题的一种(困难的)方法是,如果您使用的是Mac,则可以使用此SO问题的答案,但我真的不喜欢它:
Changing ticks mark period in Holoviews heatmap

解决方法
我认为,最简单的方法是在绘制热图之前先更改category_names ,如下所示:
df['col1'] = df['col1'].replace({1: 'a', 2: 'b'})

以下是用于更改热图的类别标签的完整示例代码:

# import libraries
import pandas as pd
import holoviews as hv
hv.extension('bokeh', logo=False)

# create dataframe
sample_data = [(1, 1, 1), (1, 2, 10), (2, 1, 2), (2, 2, 3)]

df = pd.DataFrame(
    data=sample_data,
    columns=['col1', 'col2', 'col3'],
)

# replace original category labels with labels that you need
df['col1'] = df['col1'].replace({1: 'a', 2: 'b'})

# show plot with new category labels
hv.HeatMap(df)

最终结果,其中原始类别标签1和2在x轴上被'a'和'b'代替
renaming category labels heatmap holoviews