【问题标题】:Kivy graph doesn't appear in widgetKivy 图表未出现在小部件中
【发布时间】:2017-01-16 00:39:20
【问题描述】:

我正在尝试找到将图表嵌入到 kivy 小部件中的解决方案。似乎只有一个使用 kivy garden 图(正弦波)的例子,我很难在我的应用程序中实现它。

这是我正在使用的代码

#!/usr/bin/kivy
import kivy


from random import random
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.switch import Switch
from kivy.uix.label import Label
from kivy.garden.graph import Graph, MeshLinePlot
from math import sin
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from kivy.graphics import *

from kivy.config import Config
Config.set('graphics', 'width', '800')
Config.set('graphics', 'height', '480')

Builder.load_string("""

<Menuscreen>:
    #Handling the gesture event.
    ScreenManager:
        id: manager
        Screen:
            id: main_screen
            name:'main_screen'
            FloatLayout:

                MyGraph:
                    size_hint: None, None
                    size: 800,600
                    pos: 25,25



""")

class MyGraph(Graph):
    def __init__(self, **kwargs):
        super(MyGraph, self).__init__(**kwargs)
        self.xlabel = 'This is the X axis'
        self.ylabel = 'This is the Y axis'
        self.x_ticks_minor = 5
        self.x_ticks_major = 25
        self.y_ticks_major = 1
        self.y_grid_label = True
        self.x_grid_label = True
        self.x_grid = True
        self.y_grid = True
        self.xmax = 100
        self.xmin = -0
        self.ymin = -1
        self.ymax = 1
        self.plot = MeshLinePlot(color=[1, 0, 0, 1])
        self.plot.points = [(x, sin(x / 10.)) for x in range(0, 100)]
        self.add_plot(self.plot)

class MenuScreen(Screen):
    pass

sm = ScreenManager()
menu_screen = MenuScreen(name='menu')
sm.add_widget(menu_screen)


class TestApp(App):

    def build(self):

        return sm

if __name__ == '__main__':
    TestApp().run()

所有轴标签似乎都出现了,但图表上的点没有出现。有什么我想念的东西让这个出现吗?提前感谢您的建议。

【问题讨论】:

    标签: python plot graph widget kivy


    【解决方案1】:

    Github 的Mostafar 提出了同样的问题,感谢@Tshirtman,提供了以下答案:

    mostafar 于 2014 年 4 月 27 日发表评论 在与 @tshirtman 聊天后,他发现问题出在 stencilbuffer 上,并将图形模块的 init.py 的第 139 行更改为:

    self._fbo = Fbo(size=self.size, with_stencilbuffer=False)

    这在我的例子中是可见的,但是图形的新特性(SmoothLinePlot)会有很多问题。

    链接:https://github.com/kivy-garden/garden.graph/issues/7

    【讨论】:

      猜你喜欢
      • 2015-07-17
      • 2020-12-17
      • 2016-01-14
      • 2023-02-25
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      相关资源
      最近更新 更多