Как нарисовать горизонтальный график в приложении Kivy?
Необходимо создать график в приложении.
На данном этапе, я не смог найти точных описаний как строить в горизонтальном виде данный график. Я пробовал менять в points
местами данные точек, также пробовал вращать canvas
- но это не помогло мне добиться нужного результата. Попытка прорисовать HBar также не подошла, т.к. он рисует линию через весь график. Мне очень хотелось бы разобраться.
Код программы:
from kivy.garden.graph import Graph, MeshLinePlot, LinePlot, BarPlot, HBar
from kivy.app import App
from kivy.lang import Builder
from kivy.clock import Clock
class myApp(App):
bl = Builder.load_string("""
BoxLayout:
orientation: 'vertical'
padding: [5, 5, 5, 5]
BoxLayout:
orientation: 'horizontal'
size_hint_y: .15
Label:
id: lbl
text: 'Метка'
font_size: 32
BoxLayout:
orientation: 'vertical'
Button:
id: btn_start
text: 'Load'
Button:
id: btn_stop
text: 'Stop'
Graph:
id: graph
xlabel: 'depth'
ylabel: 'volume'
y_grid_label: True
x_grid_label: True
font_size: 28
x_ticks_minor: 1
x_ticks_major: 4
y_ticks_minor: 10
y_ticks_major: 10
x_grid: False
y_grid: False
""")
def __init__(self, **kwargs):
self.plot = HBar(color=[1, 1, 1, 1])
self.plot_pick = BarPlot(color=[.8, 0, 0, 1])
super(myApp, self).__init__(**kwargs)
def on_start(self):
self.root.ids.btn_start.bind(on_press = self.start)
self.root.ids.btn_stop.bind(on_press = self.stop)
self.event=Clock.schedule_interval(self.update_data, 2.5)
def update_data(self, dt):
self.root.ids.lbl.text = 'Создаем'
self.plot_pick.bar_width = 25
self.plot_pick.points = [(10, 5), (25, 11)]
self.root.ids.graph.add_plot(self.plot_pick)
def stop(self, dt):
Clock.unschedule(self.event)
self.root.ids.lbl.text = 'Остановлен'
def start(self, dt):
Clock.schedule_interval(self.update_lbl, 2)
self.root.ids.lbl.text = 'Восстанавливаем'
def build(self):
return self.bl
myApp().run()