如何在Kivy中添加Matplotlib图表?
将 Matplotlib 图表集成或添加到 Kivy 应用程序中可以帮助开发人员创建更具信息性和吸引力的用户界面。Kivy 是一个开源的 Python 框架,用于开发移动和桌面应用程序,而 Matplotlib 是一个数据可视化库,用于创建图表、图形和其他可视化效果。在本文中,我们将探讨在 Kivy 中添加 Matplotlib 图表所涉及的步骤。
如何在 Kivy 中添加 Matplotlib 图表?
以下是我们将遵循的步骤,以便在 Kivy 中添加 Matplotlib 图表:
步骤 1
创建一个虚拟环境。您可以将虚拟环境命名为任何您想要的名字,在本篇文章中,我们将将其命名为 kivy_venv。使用以下代码创建虚拟环境:
以下是确保您已更新 pip、wheel 和 virtualenv 的代码:
python -m pip install --upgrade pip wheel setuptools virtualenv
在当前目录中,创建一个名为 kivy_venv 的虚拟环境。
python -m virtualenv kivy_venv
激活虚拟环境。
kivy_venv\Scripts\activate
步骤 2
安装 matplotlib、kivy 和 kivy_garden:
在开始将 Matplotlib 图表集成或添加到 Kivy 之前,我们需要安装所需的库。我们可以使用 pip 安装 Matplotlib、kivy 和其他依赖项。要安装 matplotlib,请在 Windows 的命令提示符中使用以下命令:
如果以上代码出现错误,请尝试以下代码
pip install --upgrade matplotib
pip install matplotib
要安装 Kivy,请在 Windows 的终端中使用以下命令:
pip install kivy

要安装 kivy_garden,请在 Windows 的终端中使用以下命令:
pip install kivy_garden

要安装 Kivy 的依赖项和其他模块,请参阅 Kivy 的安装指南:此处
对于本文,我们使用 Sublime Text 作为文本编辑器,并使用命令提示符运行 Python 文件。
步骤 3
打开 Sublime Text 编辑器并添加一个新文件,将文件保存为 file_name.py,文件应为 .py 扩展名。
现在,让我们创建一个 Kivy 应用程序。打开您喜欢的文本编辑器并创建一个名为“mappy.py”的新文件。此文件将定义 Kivy 应用程序及其用户界面。以下是基本 Kivy 应用程序的代码:
接下来一步是创建一个 kivy 应用程序。为此,请在本篇文章中打开您喜欢的文本编辑器,我们将使用 Sublime Text 编辑器并创建一个名为“main.py”的新文件,确保文件应为 .py 扩展名,但文件名可以是您想要的任何名称。在此特定文件中,我们将定义 Kivy 应用程序及其用户界面。以下是基本 kivy 应用程序的代码:
from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.uix.floatlayout import FloatLayout
from kivy.garden.matplotlib.backend_kivyagg import FigureCanvasKivyAgg
import matplotlib.pyplot as plt
class MainApp(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette="BlueGray"
MainApp().run()
在上面的代码中,我们导入了所需的 kivy 模块,定义了继承自“App”类的“MyApp”类,并定义了返回 BoxLayout 的“build”方法。
步骤 4
在此步骤中,我们将添加 Matplot 到 kivy。
我们将 Matplotlib 添加到 kivy 应用程序中。为此,我们需要创建一个 Matplotlib 图形并将其添加到 kivy 应用程序的用户界面中。以下是将 matplotlib 图形添加到 kivy 应用程序的代码。
from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.uix.floatlayout import FloatLayout
from kivy.garden.matplotlib.backend_kivyagg import FigureCanvasKivyAgg
import matplotlib.pyplot as plt
#define what we want to graph
x=[11,22,33,44,55,66,77,88,99,100]
y=[12,6,9,15,23,67,11,90,34,91]
plt.plot(x,y)
plt.ylabel("Y axis")
plt.xlabel("X axis")
class MainApp(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette="BlueGray"
MainApp().run()
在上面的代码中,我们导入了 Matplotlib 的 pyplot 模块并创建了一个图形和轴。我们还从“kivy.garden.matplotlib.backend_kivyagg”模块导入了 FigureCanvas 小部件。此小部件允许我们将 Matplotlib 图形添加到 Kivy 应用程序的用户界面中。最后,我们创建了一个 BoxLayout 并将 FigureCanvas 小部件添加到其中。
步骤 5
在下一步中,我们将通过创建具有 .kv 扩展名的设计文件来自定义和设计我们的应用程序和 matplotlib 图表。创建一个新文件并将文件命名为“mappy.kv”。以下是执行此操作的代码:
<Matty>
BoxLayout:
id:box
size_hint_y: .8
pos_hint: {"top":1}
BoxLayout:
size_hint_y: .2
TextInput:
id:namer
multiline: False
Button:
text: "Save It....."
on_release: root.saveit()
以下是“mappy.py”和“mappy.kv”这两个文件的代码。
程序(“mappy.py”文件)
from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.uix.floatlayout import FloatLayout
from kivy.garden.matplotlib.backend_kivyagg import FigureCanvasKivyAgg
import matplotlib.pyplot as plt
#define what we want to graph
x=[11,22,33,44,55,66,77,88,99,100]
y=[12,6,9,15,23,67,11,90,34,91]
plt.plot(x,y)
plt.ylabel("Y axis")
plt.xlabel("X axis")
#Build our app
class Matty(FloatLayout):
def __init__(self,**kwargs):
super().__init__(**kwargs)
box=self.ids.box
box.add_widget(FigureCanvasKivyAgg(plt.gcf()))
def save_it(self):
pass
class MainApp(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette="BlueGray"
Builder.load_file('matty.kv')
return Matty()
MainApp().run()
程序(“mappy.kv”文件)
<Matty>
BoxLayout:
id:box
size_hint_y: .8
pos_hint: {"top":1}
BoxLayout:
size_hint_y: .2
TextInput:
id:namer
multiline: False
Button:
text: "Save It....."
on_release: root.saveit()
打开命令提示符并转到保存“mappy.py”文件的目录。在命令提示符中输入以下命令。
python mappy.py

这里 kivy_venv 是虚拟环境。
输出

结论
总之,将 Matplotlib 图表集成或添加到 Kivy 应用程序中可以帮助开发人员创建更具信息性和吸引力的用户界面。在本文中,我们学习了如何在 Kivy 中添加 Matplotlib 图表。我们还了解了如何使用设计文件自定义和设计 Matplotlib 图表。通过遵循本文中概述的步骤,开发人员可以轻松地将 Matplotlib 图表集成到他们的 Kivy 应用程序中,并创建更具视觉吸引力的用户界面。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP