2017-02-18 142 views
0

我有一個標準的條形圖。圖中所示的測量值不直接相鄰;它們之間有空間。我想填充兩次測量之間的距離,使它們與之前的測量值相同。這是可能的情節嗎?在條形圖中填充條形圖之間的間距用Plotly製作

編輯澄清:假設我有這些測量:[20 = 3,25 = 3,27 = 3,30 = 10,31 = 10,50 = 2,56 = 2] - 我想要數據點20,25和27顯示爲條形圖上的一個大條(填充20和27之間的x軸上的空間),30和31,是相同的條形,50和56是條形同樣的酒吧。我想這樣做的原因是圖表中有數百萬個空白點,如果我手動填充它們,圖表會將瀏覽器停下來。

+0

我想答案是**是**。也許使用'width = ...'?! – jojo

+0

@jojo - 感謝您的簡要假設並嘗試幫助。爲了更好地說明我的問題,我上面進行了編輯。 –

回答

1

其中一種可能性是爲您的測量創建散點圖並將條添加爲shapes。使用connectgaps: Falsefill: tozeroy的簡單解決方案在此處不起作用。

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

meas_x = [20, 25, 27, 30, 31, 50, 56] 
meas_y = [3, 3, 3, 10, 10, 2, 2] 
meas_y.append('None') 
meas_x.append('None') 

trace1 = go.Scatter(
    x=meas_x, 
    y=meas_y, 
    mode='markers' 
) 

shapes = list()  
y = meas_y[0] 
x = meas_x[0] 
for i, m_y in enumerate(meas_y[1:]): 
    if y != m_y: 
     shapes.append({ 
      'type': 'rect', 
      'x0': x, 
      'y0': 0, 
      'x1': meas_x[i], 
      'y1': meas_y[i - 1], 
      'fillcolor': '#d3d3d3', 
     }) 
     y = m_y 
     x = meas_x[i + 1] 

fig = { 
    'data': [trace1], 
    'layout': go.Layout(shapes=shapes) 
} 
plotly.offline.iplot(fig) 

bars

+0

我複製了你的例子,但黑色線條(形狀)不顯示。只有藍色標記。爲什麼會這樣呢? –

+1

@horse頭髮:讓我檢查,也許這是一個複製和粘貼錯誤 –

+0

只是再次嘗試,將整個代碼複製到一個新的Jupyter筆記本,它的工作。你在使用什麼環境? –

相關問題