Я работаю над новым ie приложением с Kivy и python для расчета потребления алкоголя. Приложение рассчитывает потребление алкоголя и отображает его на графике matplotlib. Я могу заставить график отображаться на отдельном экране, но я бы хотел, чтобы график отображался над калькулятором при нажатии клавиши вычисления.
Я пытался просмотреть документацию Kivy, но не могу понять! Я думаю, что это может быть связано с box.add_widget (FigureCanvasKivyAgg (plt.gcf ())), так как это отображает график на виджете, но я не знаю, как добавить его на экран калькулятора. Я попытался использовать ID: скользящий график в моем файле KIVY (ниже), но это не сработало. Любая помощь могла бы быть полезна. Спасибо!
main.py ...
class GraphGridLayout(GridLayout):
def build(self):
return GraphGridLayout()
class AlcGridLayout(GridLayout):
def calculate(self, calculation):
if calculation:
try:
self.display.text = str(eval(calculation))
MyApp().run()
except Exception:
self.display.text = "Something went wrong!"
def another(self, calculation):
if calculation:
try:
self.display.text = str(eval(calculation))
except Exception:
self.display.text = "Something went wrong!"
graph.py ....
class MyApp(App):
x = [1, 2, 3, 4, 5, 6, 7]
y = [None, 3, 2, 4, 0, 0, 0]
if y[0] is None:
y[0] = 0
else:
y[0] = 2
plt.plot(x, y)
plt.ylabel('Alcohol Units')
plt.xlabel('Day')
plt.tight_layout(10)
def build(self):
box = BoxLayout()
box.name: box
box.add_widget(FigureCanvasKivyAgg(plt.gcf()))
return box
Alcohol.kv ... [есть много так что это первый бит. Было бы здорово, чтобы график отображался с идентификатором: rollgraph / imageview ...?]
<CustButton@Button>:
font_size: 18
size: 30, 30
background_color:.50,.50,.50,1
<CustLabel@Label>:
font_size: 18
id: label
color:.25,.80,.92,1
size: 30, 30
background_color: .50,.50, .50, 1
<AlcGridLayout>:
id: rollinggraph
rows: 16
padding: 0
spacing: 0
# Graph display
BoxLayout:
id: imageView
background_color: .50,.10, .50, 1