2017-02-18 24 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