如何在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 應用程式中,並建立更具視覺吸引力的使用者介面。