One relatively naive approach:
def gauge(x, width=20):
pos = int((x+1) / 2 * width)
g = ['='] * width
m = width // 2
if pos == m:
sep = '[0]'
else:
g[pos] = '|'
sep = ' 0 '
g = ''.join(g)
return '-1 {}{}{} +1'.format(g[:m], sep, g[m:])
>>> gauge(-0.25)
'-1 =======|== 0 ========== +1'
>>> gauge(-0.25, 50)
'-1 ==================|====== 0 ========================= +1'
>>> gauge(0.33, 50)
'-1 ========================= 0 ========|================ +1'
>>> gauge(0.0, 50)
'-1 =========================[0]========================= +1'
>>> gauge(0.99, 50)
'-1 ========================= 0 ========================| +1'
>>> gauge(-0.99, 50)
'-1 |======================== 0 ========================= +1'