Search code examples
pythonkivykivy-language

How to change the background color of a kivy Graph?


Does it exist a property similar to the one below to change the background color of a Graph in Kivy?

test.kv

Graph:
    id: my_graph_id
    border_color = (0,0,0,0) # this is valid
    background_color = (0,0,0,0) # ?? this does not exist

Solution

  • Use graph.background_color in Python code. The attribute background_color do exist for Kivy Garden Graph as shown below.

    Example

    main.py

    from math import sin
    from kivy.garden.graph import Graph, MeshLinePlot
    from kivy.app import App
    from kivy.uix.boxlayout import BoxLayout
    
    
    class RootWidget(BoxLayout):
    
        def __init__(self, **kwargs):
            super(RootWidget, self).__init__(**kwargs)
    
            graph = Graph(xlabel='X', ylabel='Y', x_ticks_minor=5, x_ticks_major=25, y_ticks_major=1,
                          y_grid_label=True, x_grid_label=True, padding=5,
                          x_grid=True, y_grid=True, xmin=-0, xmax=100, ymin=-1, ymax=1)
    
            graph.background_color = 0, 0, 1, 1    # blue color
    
            plot = MeshLinePlot(color=[1, 0, 0, 1])
            plot.points = [(x, sin(x / 10.)) for x in range(0, 101)]
            graph.add_plot(plot)
            self.add_widget(graph)
    
    
    class GraphDemo(App):
        title = "Kivy Garden Graph - background_color"
    
        def build(self):
            return RootWidget()
    
    
    if __name__ == "__main__":
        GraphDemo().run()
    

    Output

    Img01 - Kivy Garden Graph background_color is blue