do not depend on matplotlib
landscape.io