Wer innerhalb von Kivy auch Diagramme, wie beispielsweise Temperaturverläufe anzeigen möchte, muss sich noch ein Zusatzmodul installieren. In meinem Fall möchte ich mit der Matplotlib Temperatur- und Feuchteverläufe in einer App darstellen. Dazu verwende ich das Modul Kivy-Garden/Matplotlib.
Die Installation ist denkbar einfach. Zunächst installiert man Kivy Garden
pip3 install kivy-garden
und nach einem Neustart die Matplotlib Erweiterung:
garden install matplotlib
Um zu überprüfen, ob Matplotlib installiert wurde oder um zu sehen, welche sonstigen Garden Module installiert sind, kann man mit dem Befehl:
garden list
eine Liste der installierten Module abrufen.
Natürlich sind wir noch nicht ganz am Ende. Das, was wir gerade installiert haben ist nicht die Matplotlib an sich, sondern nur eine Erweiterung von Kivy, um Plots aus Matplotlib anzeigen zu können. Also installieren wir jetzt noch die Matplotlib.
python3 -m pip install -U matplotlib
Jetzt schreiben wir noch ein kleines Testprogramm, um die Matplotlib mit Kivy zusammen in Action zu sehen.
from kivy.garden.matplotlib.backend_kivyagg import FigureCanvasKivyAgg
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
import matplotlib.pyplot as plt
#data = {'Monday': 10, 'Tuesday': 15, 'Wednesday': 5, 'Thursday': 20, 'Friday': 12}
values_xaxis = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
values_yaxis = [10, 15, 5, 25, 34, 55, 37]
fix, ax = plt.subplots()
ax.bar(values_xaxis, values_yaxis)
plt.ylabel('Visitors per Day')
class MyApp(App):
def build(self):
box = BoxLayout()
box.add_widget(FigureCanvasKivyAgg(plt.gcf()))
return box
MyApp().run()
Das Ergebnis ist ein einfacher Plot, der Besucherzahlen über den Wochentagen als Balkengrafik dasrstellt.