I had the same issue raised in this question and was largely unsatisfied with the existing solutions so I created a package for Python: bivapp
As of writing the library is still in early development but some core features are present and it should be able to produce the kind of plots referenced in this question.