Plotly:如何删除在带注释的热图中引入间隙后出现的垂直线?

Plotly: How do I remove vertical lines that appear after introducing gaps in annotated heatmap?

当我在带注释的热图中的砖块之间引入间隙时,砖块后面会出现垂直黑线(在间隙中可见)。这些线似乎与 x 轴标签对齐。更奇怪的是,如果 x 轴类别是数字,标签“0”将不会得到垂直线。我想删除垂直线。我查看了文档,无法弄清楚这些行是什么。您会注意到还有与 x 轴和 y 轴标签对齐的水平垂直线和白线。我不介意那些。

import plotly.graph_objs as go
from plotly.figure_factory import create_annotated_heatmap
import numpy as np

fig = go.Figure(create_annotated_heatmap(z = np.arange(12).reshape(3,4),
                                         x = [0,1,2,3],
                                         y = ['A','B','C'],
                                         xgap = 30, ygap = 30
                                        )
               )
fig.update_layout(title = 'What are these vertical lines?')
fig.show()

不是标准热图的问题:

fig2 = go.Figure(go.Heatmap(z = np.arange(12).reshape(3,4),
                            x = [0,1,2,3],
                            y = ['A','B','C'],
                            xgap = 30, ygap = 30
                           )
                )
fig2.update_layout(title = 'No vertical lines here.')
fig2.show()

关于 help(create_annotated_heatmap) 的文档,有一个简短的参数列表,似乎与它没有任何关系,以及通过标准 plotly Heatmap 的 kwargs。

零下方的行是 'zeroline',而其他行是 'gridlines'。可以通过在图形布局中设置 zeroline=Falseshowgrid=False 来删除它们。

import plotly.graph_objs as go
from plotly.figure_factory import create_annotated_heatmap
import numpy as np

fig = go.Figure(create_annotated_heatmap(z=np.arange(12).reshape(3,4),
                                         x=[0,1,2,3],
                                         y=['A','B','C'],
                                         xgap=30, ygap=30))

fig.update_layout(xaxis=dict(zeroline=False, showgrid=False), 
                  yaxis=dict(zeroline=False, showgrid=False))

fig.show()

或者,您可以将它们的颜色更改为标准热图中的白色。

import plotly.graph_objs as go
from plotly.figure_factory import create_annotated_heatmap
import numpy as np

fig = go.Figure(create_annotated_heatmap(z=np.arange(12).reshape(3,4),
                                         x=[0,1,2,3],
                                         y=['A','B','C'],
                                         xgap=30, ygap=30))

fig.update_layout(xaxis=dict(zeroline=False, gridcolor='white'),
                  yaxis=dict(zeroline=False, gridcolor='white'))

fig.show()