如何在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 应用程序中,并创建更具视觉吸引力的用户界面。

更新时间: 2023年5月31日

3K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告