Matplotlib Backend

Date: February 29th 2016
Last updated: February 29th 2016

Getting matplotlib working in kivy was a challenge. First I had issues getting matplotlib working in a virtual environment. Second I had issues plotting to the parent canvas which would end up masking other buttons etc.


cd path/to/venv/
source bin/activate
sudo apt-get update
sudo apt-get -y build-dep matplotlib

pip install kivy-garden
garden install matplotlib

Simple histogram example (no kv file)

import matplotlib
import matplotlib.pyplot as plt
from import FigureCanvas
import kivy
from import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
import matplotlib.mlab as mlab
from random import gauss

# create data 
fig, ax = plt.subplots()
x = [gauss(100, 15) for i in range(100)]
n, bins, patches = ax.hist(x, 50, normed=1, facecolor='white', alpha=0.3)
pdf = mlab.normpdf(bins, 100, 15)
ax.plot(bins, pdf, 'r-', linewidth=2)
ax.set_xlim([0, 200])

# kivy specific wrapper to plot a figure in a widget
canvas = FigureCanvas(figure=fig)

# create app
class SampleApp(App):
    def build(self):
        fl = BoxLayout(orientation="vertical")
        a = Button(text="press me", height=40, size_hint_y=None)
        return fl

if __name__ == '__main__':


kivy-matplotlib histogram screenshot

results matching ""

    No results matching ""