2015-10-13 98 views
3

As a follow on to a previous questionplotly有沒有數據跟蹤傳說

假設我要顯示一組條形,其中每個酒吧可能是選擇之一:A,B,或C,每個都有不同的顏色。我想展示酒吧,但是如果沒有酒吧屬於特定類別,那麼這個類別在傳奇中就會出現。不幸的是,沒有顏色的類別似乎被丟棄。在這個例子中通知的類別如何標記爲「C」應該是藍色是從圖例中刪除:

data = [ 
{ 
x: [1, 3, 4], 
y: [20, 14, 23], 
type: 'bar', 
name: 'A', 
marker: {color: '#00FFFF'}}, 
{ 
x: [2, 5, 6], 
y: [8, 6, 2], 
type: 'bar', 
name: 'B', 
marker: {color: '#FF00FF'}}, 
{ 
x: [], 
y: [], 
type: 'bar', 
name: 'C' 
marker: {color: '#FF0000'}}] 

Category C is not shown

我怎麼就能夠確保C(或沒有數據的任何顏色)始終出現?

回答

5

痕跡與空數據陣列被假定爲不可見的。這相當於在跟蹤對象中設置visible: false

您可以通過在數據數組進入null值plotly招:

data = [{ 
    x: [1, 3, 4], 
    y: [20, 14, 23], 
    type: 'bar', 
    name: 'A', 
    marker: {color: '#00FFFF'} 
}, { 
    x: [2, 5, 6], 
    y: [8, 6, 2], 
    type: 'bar', 
    name: 'B', 
    marker: {color: '#FF00FF'} 
}, { 
    x: [null], 
    y: [null], 
    type: 'bar', 
    name: 'C' 
    marker: {color: '#FF0000'} 
}] 

這給

enter image description here

+0

完美。我沒有意識到使用[]和使用[null]會有區別。 – Jonathan

+0

[]表示它創建一個空數組。 [null]意味着它創建一個只有一個元素的數組。而這個元素是空的。 – flipperweid

+0

@etpinard你的答案是2歲。在當前版本中有沒有將「null」值推向'x'和'y'的其他解決方案?這不好,因爲我的其他代碼需要div.data中的有效日期和數據。也許有一個像'showEmptyTracesInLegend'這樣的配置標誌可以設置爲'true' – flipperweid

0

您可以添加使用零高度初始化一個數據點的第三跡:

{'x': [0], 'y': [0], 'type': 'bar'}

Bar chart example with plotly 互動例如:https://plot.ly/~chris/16792.embed

你也可能會想要刪除的懸停文本,如果有沒有數據。使用hoverinfo自定義懸停文本(https://plot.ly/python/reference/#bar-hoverinfo)。

{'x': [0], 'y': [0], 'type': 'bar', 'hoverinfo': 'none'}

示例圖表:https://plot.ly/~chris/16795.embed

+0

我覺得這個解決方案會導致與在酒吧的渲染問題。例如,假設我不想讓y軸從零開始,現在我不得不考慮0條會做什麼。 – Jonathan