2017-02-18 69 views
0

我有两个热图。他们的价值观完全不同,所以不应该分享色彩。我试图创建一个具有两个子图(水平排列)的情节图,并将每个热图放入其中一个子图中。但是,这两个热图在右侧的热图右侧共享相同的色阶。色标显示两组标签重叠在一起。我想看到的是,有两个颜色标注,每个热图右侧一个。如何设置Plotly包含热图的两个水平子图,以便它们不共享色彩比例?

我的代码如下。有人在这里看到问题吗?

fig = plotly.tools.make_subplots(rows=1, cols=2) 

fig.append_trace(mm, 1, 1) 
fig.append_trace(sm, 1, 2) 

plotly.offline.iplot(fig) 

我试图设置share_xaxesshare_yaxesFalse明确。没有帮助。

回答

1

您可以明确指定颜色条的xposition,请参阅下面的示例。

这个图在笔记本上看起来比较好看,也许还应该移动右边的情节?

moved it

import plotly.plotly as py 
import plotly.graph_objs as go 
import plotly 
plotly.offline.init_notebook_mode() 

mm = go.Heatmap(
     z=[[1, 20, 30], 
      [20, 1, 60], 
      [30, 60, 1]], 
     colorbar = dict(x=0.45), 
    colorscale='Viridis' 
    ) 
sm = go.Heatmap(
     z=[[1, 2, 3], 
      [2, 1, 6], 
      [3, 6, 1]] 
    ) 
fig = plotly.tools.make_subplots(rows=1, cols=2) 
fig.append_trace(mm, 1, 1) 
fig.append_trace(sm, 1, 2) 

plotly.offline.iplot(fig) 
+0

非常感谢给@马克西米利安 - 彼得斯的答案(不知道如何引用一个计算器的用户名在这里)。我遵循你使用colorbar.x的建议,并且很好地解决了这个问题。 '0.45'定位也很好。如果两个热图恰好共享y轴,那么我们可以使用'share_yaxes = True',以使热图#1的色条不会与热图#2的y轴重叠。然后,对于热图#2的颜色条,我使用'1.0'作为它的'x'位置,这似乎与两个对的热图和颜色条之间的距离相匹配。 – Roy

+0

不知道是否参考Maximilian Peters工作@ maximilian-peters谢谢你! – Roy