Python Plotly热图子图 - 删除内部y轴编号和刻度

时间:2017-08-25 16:40:09

标签: python plot plotly heatmap subplot

如何从Plot.ly热图子图graph below中删除内部y轴上的数字和刻度?两个图都共享相同的y轴范围,因此没有理由同时显示两者。

import plotly.plotly as py
import plotly.graph_objs as go
from plotly import tools


import pandas as pd
import numpy as np


dfl = []

dfl.append(pd.DataFrame(np.random.random((100,100,))))
dfl.append(pd.DataFrame(np.random.random((100,100,))))


fig = tools.make_subplots(rows=1, cols=len(dfl) ,print_grid=False);

for index, a in enumerate(dfl):

    sn = str(index)

    data = go.Heatmap(
            z=a.values.tolist(),
            colorscale='Viridis',
            colorbar=dict(title='units'),
        )

    fig.append_trace(data, 1, index+1)
    fig['layout']['xaxis'+str(index+1)].update(title='xaxis '+str(index))

fig['layout']['yaxis1'].update(title='y-axis')
fig['layout'].update(height=600, width=800, title='heatmap subplots')
py.iplot(fig)

Heatmap subplots

2 个答案:

答案 0 :(得分:1)

只需将'shared_yaxes = True'设置传递给tools.make_subplots函数调用,即:

fig = tools.make_subplots(rows=1, cols=len(dfl) ,print_grid=False, shared_yaxes=True)

答案 1 :(得分:1)

更新了 Plotly 新版本的答案。基于 v4 migration guide

差异包括

  • 调用 make_subplots 库中的 plotly.subplots 函数,而不是 plotly.tools,并且
  • 使用 fig.show 代替 py.iplot 在 Jupyter 中显示图形。

以下代码在 Plotly 5.1.0 版中使用 Jupyter Notebook 进行了测试。

import plotly

import plotly.graph_objs as go

import pandas as pd
import numpy as np


dfl = []

dfl.append(pd.DataFrame(np.random.random((100,100,))))
dfl.append(pd.DataFrame(np.random.random((100,100,))))


fig =  plotly.subplots.make_subplots(rows=1, cols=len(dfl) ,print_grid=False, shared_yaxes=True);

for index, a in enumerate(dfl):

    sn = str(index)

    data = go.Heatmap(
            z=a.values.tolist(),
            colorscale='Viridis',
            colorbar=dict(title='units'),
        )

    fig.append_trace(data, 1, index+1)
    fig['layout']['xaxis'+str(index+1)].update(title='xaxis '+str(index))

fig['layout']['yaxis1'].update(title='y-axis')
fig['layout'].update(height=600, width=800, title='heatmap subplots')
fig.show()

输出:

plotly_v5_output