python - 如何在 Kivy kv 文件中创建 Matplotlib 小部件?
问题描述
我想使用 .kv 文件来制作 Matplotlib 小部件,但我不知道该怎么做。
如果没有 .kv 文件,基本代码如下所示:
from kivy.garden.matplotlib.backend_kivyagg import FigureCanvasKivyAgg
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
import matplotlib.pyplot as plt
plt.plot([1, 23, 2, 4])
plt.ylabel('some numbers')
class MyApp(App):
def build(self):
box = BoxLayout()
box.add_widget(FigureCanvasKivyAgg(plt.gcf()))
return box
MyApp().run()
这是如何使用 .kv 文件完成的?
解决方案
所以这就是我想出来的。在 .KV 语言文件中,您指定一个布局并给它一个 id:
BoxLayout:
id: destination
然后在您的python代码中使用以下内容:
self.ids.destination.add_widget(FigureCanvasKivyAgg(plt.gcf()))
因此,您可以有效地使用在 kivy 语言文件中设置的 id 作为 matplotlib 图形的参考。
推荐阅读
- quarkus - Quarkus:如何与 Artemis 使用点对点消息传递?
- r - 我可以根据同一 tibble 中另一列的值过滤一列吗?
- c# - 替换正则表达式匹配
- javascript - 从字符串 JavaScript 创建嵌套对象
- r - 在 r 中创建一个带有布尔选项的函数:如果在调用函数时没有提供布尔选项,我如何返回数据帧?
- php - Laravel 只搜索完全匹配
- python - Lstrip 和 Rstrip 不起作用,需要帮助从 Python 3 的输出中删除文本
- java - 期待'STRING',得到'EOF'
- python - ValueError:无法将输入数组从形状(110,110,3)广播到形状(110,110)
- java - 碎片活动的回收者视图