如何在 Kivy 中添加 Matplotlib 图表?

matplotlibpythondata visualization

将 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 −

在我们开始在 Kivy 中集成或添加 Matplotlib 图表,我们需要安装所需的库。我们可以使用 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 文本编辑器并创建一个名为"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 应用程序的用户界面。下面是向 kivy 应用添加 matplotlib 图形的代码。

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

#定义我们想要绘制的图形
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

#定义我们想要绘制的图形
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 轴")
plt.xlabel("X 轴")

#构建我们的应用程序

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


相关文章