用Plotly填充条形图中的条形之间的空间

时间:2017-02-18 01:12:27

标签: python plotly

我有一个情节条形图。图表所示的测量值不是直接相邻的;他们之间有空间。我想填充测量之间的空间,使它们与之前的测量值相同。这可能与情节有关吗?

编辑澄清:假设我有这些测量:[20 = 3,25 = 3,27 = 3,30 = 10,31 = 10,50 = 2,56 = 2] - 我想要数据点20,25和27在条形图上显示为一个大条(在x轴上填充20到27之间的空间),30和31,是相同的条,50和56是相同的酒吧。我想要这个的原因是我在图表中有数百万个空点,如果我手动填充它们,图形会使浏览器停止运行。

1 个答案:

答案 0 :(得分: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