wrap plot calls into observe so data is updated only once