Add back-end read-only option
Fix: heat-map canvas width = options.width, not default width