【发布时间】:2018-08-30 15:22:29
【问题描述】:
我想添加一个仅显示在进度屏幕上的条形图。我是 Kivy 和 Python 的新手。我正在使用 matplotlib 作为条形图。我想将 Bar.py 代码集成到我的 main.py 代码和 progress.kv 文件中。我一直不知道如何将它添加到我的 Progress.kv 文件中。
Bar.py
这是我要显示的条形图的代码。
import matplotlib.pyplot as plt
x = [2,4,6,8,10]
y = [6,7,8,2,4]
x2 = [1,3,5,7,9]
y2 = [7,8,2,4,2]
plt.bar(x,y, label='Bars1', color='blue')
plt.bar(x2,y2, label='Bars2', color='c')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck It out')
plt.legend()
plt.show()
main.py
我想将条形图代码添加到“进度屏幕”而不是通过。
from kivy.app import App
#kivy.require("1.10.0")
from kivy.uix.screenmanager import ScreenManager, Screen,
SlideTransition
from kivy.properties import ObjectProperty
from kivy.properties import ListProperty
from kivy.uix.image import Image
from kivy.uix.label import Label
from kivy.graphics import *
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.config import Config
from kivy.lang import Builder
import numpy as np
from math import sin
import matplotlib.pyplot as plt
from kivy.garden.matplotlib.backend_kivyagg import
FigureCanvasKivyAgg
import matplotlib
from kivy.garden.matplotlib import FigureCanvasKivyAgg
#Screens created in kv file. Declare all screens for app.
class Login(Screen):
pass
class Connected(Screen):
pass
class Patient(Screen):
pass
class Progress(Screen):
pass
class Goals(Screen):
pass
class Training(Screen):
pass
class Range(Screen):
pass
class Trial(Screen):
pass
class Symmetry(Screen):
pass
class Coordination(Screen):
pass
class Help(Screen):
pass
class Manager(ScreenManager):
pass
class ScreenApp(App):
def build(self):
m = Manager(transition=SlideTransition())
return m
if __name__ == '__main__':
#sets pixels to pixels on Raspberry Pi tablet
Config.set('graphics', 'fullscreen', '0')
Config.set('graphics', 'width', '800')
Config.set('graphics', 'height', '480')
ScreenApp().run()
进度.kv
我将进度屏幕的所有代码都保存在一个 kv 文件中。我想在这里添加设计和细节,如果没有,那么在 main.py 中。
import matplotlib.pyplot as plt
<Progress>:
canvas.before:
Color:
rgb: 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
Button:
text:'Patient Menu'
font_size: 20
bold: True
size_hint: None, None
size: 300, 50
pos_hint: {'center_x': .5, 'center_y': .1 }
color: 1, 1, 1, 1
on_press: root.manager.current = 'Patient'
【问题讨论】:
标签: python-3.x graph kivy bar-chart kivy-language