我有一个情节条形图。图表所示的测量值不是直接相邻的;他们之间有空间。我想填充测量之间的空间,使它们与之前的测量值相同。这可能与情节有关吗?
编辑澄清:假设我有这些测量:[20 = 3,25 = 3,27 = 3,30 = 10,31 = 10,50 = 2,56 = 2] - 我想要数据点20,25和27在条形图上显示为一个大条(在x轴上填充20到27之间的空间),30和31,是相同的条,50和56是相同的酒吧。我想要这个的原因是我在图表中有数百万个空点,如果我手动填充它们,图形会使浏览器停止运行。
答案 0 :(得分:1)
其中一种可能性是为测量创建散点图并将条形添加为shapes
。使用connectgaps: False
和fill: 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)