2017-02-18 20 views
0

私はプロットの棒グラフを持っています。グラフによって示される測定値は直接隣接していない。それらの間にはスペースがあります。私は測定間のスペースを埋めることで、以前の測定と同じ値にしたいと思います。これは陰謀で可能ですか?Plotlyで作った棒グラフで棒の間隔を埋める

[20 = 3,25 = 3,27 = 3,30 = 10,31 = 10,50 = 2,56 = 2]これらの測定値があるとします。棒グラフ(20と27の間のx軸上の空間を埋める)、30と31を1つの大きな棒として表示するデータ点20,25,27と、同じ棒となるように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 hair:私にチェックさせてください。コピー&ペーストミスでした。 –

+0

もう一度試して、新しいJupyterノートにコード全体をコピーしてみました。どのような環境を使用していますか? –

関連する問題