Skip to main content

tkchart Library is a Python library that simplifies the process of creating line charts in tkinter GUI applications.

Project description

🌟 Like what you see? Give us a star! 🚀 Thanks a bunch! 😄

# If you're using customtkinter, I recommend checking out ctkchart for additional features and capabilities.

Contributing to tkchart

Whats New ?

Downloads Downloads Downloads

  • tkchart Library is a Python library that simplifies the process of creating line charts in tkinter GUI applications.
  • Examples



    tkchart - 1.4.2

    You need to install & import package first

    • installation

      •   pip install tkchart 
        
    • importing

      •   import tkchart
        

    objects

    • LineChart
    • Line

    To display data using LineChart you need to do 3 main tasks

    1. Creating a LineChart
    2. Creating a Line
    3. Display of data


    1 . Creating a LineChart

    linechart = tkchart.LineChart()
    
    • Attributes & Types & Values

      Master Configuration

      • master : tkinter | customtkinter (Frame | Canvas | Tk) | any

      Dimensions

      • width : int
      • height : int
      • axis_size : int
      • x_space : int
      • y_space : int
      • line_width : int | str
        • "auto"
        • 10
      • pointer_size : int

      Value Configuration

      • x_axis_section_count : int
      • y_axis_section_count : int
      • x_axis_label_count : int
      • y_axis_label_count : int
      • x_axis_display_values_indices : tuple[int, ...]
      • x_axis_data : any
      • y_axis_data : any
      • x_axis_values : tuple[any, ...]
        • ("2020 Year", "2021 Year", "2022 Year", "2023 Year", "2024 Year")
        • (0.1, 0.2, 0.3, 0.4, 0.5)
      • y_axis_values : tuple[int | float, int | float]
        • (0 ,1000)
        • (-1000, 1000)
      • y_axis_precision : int
      • pointing_values_precision : int
      • y_axis_max_value : Deprecated

      Color Configuration

      • bg_color : str
      • fg_color : str
      • axis_color : str
      • x_axis_font_color : str
        • "#ffffff"
        • "white"
      • y_axis_font_color : str
      • x_axis_data_font_color : str
      • y_axis_data_font_color : str
      • y_axis_section_color : str
      • x_axis_section_color : str
      • pointer_color : str
      • section_color : Deprecated

      Font Configuration

      • data_font_style : tuple[str, int, str]
        • ("arial", 10, "bold")
        • ("arial", 20, "normal")
      • axis_font_style : tuple

      Style Configuration

      • x_axis_data_position : str
        • "top"
        • "side"
      • y_axis_data_position : str
      • x_axis_section_style : str
        • "normal"
        • "dashed"
      • y_axis_section_style : str
      • x_axis_section_style_type : tuple[int, int]
        • (50, 10)
        • (10, 10)
      • y_axis_section_style_type : tuple[int, int]

      Data Retrieval Configuration

      • pointing_callback_function : function
        • function_name(*args)
        • function_name(x: any, y: list)
      • pointer_state : str
        • "enabled"
        • "disabled"
      • pointer_lock : str
        • "enabled"
        • "disabled"

      Recent Changes

      • y_axis_max_value : int | float Deprecated

        • replaced with y_axis_values : tuple[int | float, int | float]

          The y_axis_values parameter is a tuple where the value at index 0 represents the starting value of the Y-axis, and the value at index 1 represents the ending value of the Y-axis.

      • section_color : str Deprecated

        • replaced with x_axis_section_color : str
        • replaced with y_axis_section_color : str
    • Methods

      • configure : use to change LineChart attributes

        Support parameters

        • width
        • height
        • axis_size
        • x_space
        • y_space
        • line_width
        • pointer_size
        • x_axis_section_count
        • y_axis_section_count
        • x_axis_label_count
        • y_axis_label_count
        • x_axis_display_values_indices
        • x_axis_data
        • y_axis_data
        • x_axis_values
        • y_axis_values
        • y_axis_precision
        • pointing_values_precision
        • bg_color
        • fg_color
        • axis_color
        • x_axis_font_color
        • y_axis_font_color
        • x_axis_data_font_color
        • y_axis_data_font_color
        • y_axis_section_color
        • x_axis_section_color
        • pointer_color
        • data_font_style
        • axis_font_style
        • x_axis_data_position
        • y_axis_data_position
        • x_axis_section_style
        • y_axis_section_style
        • x_axis_section_style_type
        • y_axis_section_style_type
        • pointing_callback_function
        • pointer_state
        • pointer_lock
        • y_axis_max_value : Removed
        • section_color : Removed
      • show_data : use to display data

        Support parameters

        • data : list
        • line : tkchart.Line
      • place : use to place LineChart

        Support parameters

        • x : int
        • y : int
        • rely : float | int
        • relx : float | int
        • anchor : str
      • pack : use to pack LineChart

        Support parameters

        • pady : int
        • padx : int
        • before : widget
        • after : widget
        • side : str
        • anchor : str
      • grid : use to grid LineChart

        Support parameters

        • column : int
        • columnspan : int
        • padx : int
        • pady : int
        • row : int
        • rowspan : int
        • sticky : str
      • place_forget : use to place forget the chart

      • pack_forget : use to pack forget the chart

      • grid_forget : use to grid forget the chart

      • place_back : use to place chart in the old location after place forget

      • pack_back : use to pack chart in the old location after pack forget

      • grid_back : use to grid chart in the old location after grid forget

      • hide_all : use to hide all the lines

        Support parameters

        • state : bool
      • hide : use to hide a specific line

        Support parameters

        • line : tkchart.Line
        • state : bool
      • reset : use to reset chart

    linechart = tkchart.LineChart(master=root,
                                width=800, 
                                height=400,
                                axis_size=5
                            )
    


    linechart = tkchart.LineChart(master=root,
                                width=800, 
                                height=400,
                                axis_size=5,
                                
                                y_axis_section_count=5,
                                x_axis_section_count=5,
                                y_axis_label_count=5,
                            )
    


    linechart = tkchart.LineChart(master=root,
                                width=800, 
                                height=400,
                                axis_size=5,
                                
                                y_axis_section_count=5,
                                x_axis_section_count=5,
                                y_axis_label_count=5,
                                x_axis_label_count=10,
                                
                                y_axis_data="GB",
                                x_axis_data="S",
                                x_axis_values=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                                y_axis__max_value=(0, 1000),
                                y_axis_precision=5
                            )
    


    linechart = tkchart.LineChart(master=root,
                                width=800, 
                                height=400,
                                axis_size=5,
                                
                                y_axis_section_count=5,
                                x_axis_section_count=5,
                                y_axis_label_count=5,
                                x_axis_label_count=10,
                                
                                y_axis_data="GB",
                                x_axis_data="S",
                                x_axis_values=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                                y_axis__max_value=(0, 1000),
                                y_axis_precision=5
                                
                                x_axis_section_color="#404040",
                                y_axis_section_color="#404040",
                                x_axis_font_color="#707070",
                                y_axis_font_color="#707070",
                                x_axis_data_font_color="lightblue",
                                y_axis_data_font_color="lightblue",
                                bg_color="#202020",
                                fg_color="#202020",
                                axis_color="#707070"
                            )
    


    linechart = tkchart.LineChart(master=root,
                                width=800, 
                                height=400,
                                axis_size=5,
                                
                                y_axis_section_count=5,
                                x_axis_section_count=5,
                                y_axis_label_count=5,
                                x_axis_label_count=10,
                                
                                y_axis_data="GB",
                                x_axis_data="S",
                                x_axis_values=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                                y_axis__max_value=(0, 1000),
                                y_axis_precision=5
                                
                                x_axis_section_color="#404040",
                                y_axis_section_color="#404040",
                                x_axis_font_color="#707070",
                                y_axis_font_color="#707070",
                                x_axis_data_font_color="lightblue",
                                y_axis_data_font_color="lightblue",
                                bg_color="#202020",
                                fg_color="#202020",
                                axis_color="#707070"
                                
                                data_font_style=("Arial", 15, "bold"),
                                axis_font_style=("Arial", 10, "bold")
                            )
    


    linechart = tkchart.LineChart(master=root,
                                width=800, 
                                height=400,
                                axis_size=5,
                                
                                y_axis_section_count=5,
                                x_axis_section_count=5,
                                y_axis_label_count=5,
                                x_axis_label_count=10,
                                
                                y_axis_data="GB",
                                x_axis_data="S",
                                x_axis_values=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                                y_axis__max_value=(0, 1000),
                                y_axis_precision=5
                                
                                x_axis_section_color="#404040",
                                y_axis_section_color="#404040",
                                x_axis_font_color="#707070",
                                y_axis_font_color="#707070",
                                x_axis_data_font_color="lightblue",
                                y_axis_data_font_color="lightblue",
                                bg_color="#202020",
                                fg_color="#202020",
                                axis_color="#707070"
                                
                                data_font_style=("Arial", 15, "bold"),
                                axis_font_style=("Arial", 10, "bold"),
                                
                                x_space=20,
                                y_space=20
                            )
    


    linechart = tkchart.LineChart(master=root,
                                width=800, 
                                height=400,
                                axis_size=5,
                                
                                y_axis_section_count=5,
                                x_axis_section_count=5,
                                y_axis_label_count=5,
                                x_axis_label_count=10,
                                
                                y_axis_data="GB",
                                x_axis_data="S",
                                x_axis_values=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                                y_axis__max_value=(0, 1000),
                                y_axis_precision=5
                                
                                x_axis_section_color="#404040",
                                y_axis_section_color="#404040",
                                x_axis_font_color="#707070",
                                y_axis_font_color="#707070",
                                x_axis_data_font_color="lightblue",
                                y_axis_data_font_color="lightblue",
                                bg_color="#202020",
                                fg_color="#202020",
                                axis_color="#707070"
                                
                                data_font_style=("Arial", 15, "bold"),
                                axis_font_style=("Arial", 10, "bold"),
                                
                                x_space=20,
                                y_space=20,
                                
                                x_axis_data_position="side",
                                y_axis_data_position="side"
                            )
    
    linechart.pack()
    



    2 . Creating a Line

    line = tkchart.Line()
    
    • Attributes & Types & Values

      • master : tkchart.LineChart
      • color : str
        • "white"
        • "#10f0f0"
      • size : int
      • style : str
        • "normal"
        • "dashed"
        • "dotted"
      • style_type : tuple[int, int]
        • (5,10)
        • (10,5)
      • point_highlight: str
        • "disabled"
        • "enabled"
      • point_highlight_size: int
      • point_highlight_color: str
    • Methods

      • configure : use to change Line attributes

        Support parameters
        • size
        • color
        • style
        • style_type
        • point_highlight
        • point_highlight_size
        • point_highlight_color
    line = tkchart.Line(master=linechart,
                    color="lightblue",
                    size=2,
                    style="dashed",
                    style_type=(4,10))
    
    



    3 . Display of Data

    import customtkinter 
    import tkchart
    import random
    
    root = customtkinter.CTk()
    
    linechart = tkchart.LineChart(master=root,
                                width=800, 
                                height=400,
                                axis_size=5,
                                
                                y_axis_section_count=5,
                                x_axis_section_count=5,
                                y_axis_label_count=5,
                                x_axis_label_count=10,
                                
                                y_axis_data="GB",
                                x_axis_data="S",
                                x_axis_values=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                                y_axis_values=(0, 1000),
                                y_axis_precision=5,
                                
                                x_axis_section_color="#404040",
                                y_axis_section_color="#404040",
                                x_axis_font_color="#707070",
                                y_axis_font_color="#707070",
                                x_axis_data_font_color="lightblue",
                                y_axis_data_font_color="lightblue",
                                bg_color="#202020",
                                fg_color="#202020",
                                axis_color="#707070",
                                
                                data_font_style=("Arial", 15, "bold"),
                                axis_font_style=("Arial", 10, "bold"),
                                
                                x_space=20,
                                y_space=20,
                                
                                x_axis_data_position="side",
                                y_axis_data_position="side"
                            )
    linechart.pack()
    
    
    line = tkchart.Line(master=linechart,
                        color="lightblue",
                        size=2,
                        style="dashed",
                        style_type=(4, 10))
    
    data = [0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000]
    def loop():
        linechart.show_data(data=[random.choice(data)], line=line)
        root.after(250, loop)
    loop()
    
    root.mainloop()
    


    Examples




    Whats New ?

    Go to top

    Contributing to tkchart

    Thank you for considering contributing to tkchart! Please follow these guidelines to contribute effectively.

    Getting Started

    1. Fork the repository.
    2. Clone your forked repository: git clone https://github.com/Thisal-D/tkchart.git
    3. Create a new branch for your changes: git checkout -b feature-branch

    Making Changes

    1. Make your changes and ensure they follow the project's coding standards.
    2. Test your changes locally.
    3. Commit your changes: git commit -m "Brief description of your changes"

    Submitting Changes

    1. Push your changes to your forked repository: git push origin feature-branch
    2. Create a pull request on the main repository.

    Code of Conduct

    Please adhere to the Code of Conduct to maintain a respectful and inclusive community.

    Issues and Discussions

    If you encounter issues or have questions, please check the issue tracker or start a discussion in the GitHub Discussions section.

    License

    By contributing, you agree that your contributions will be licensed under the project's LICENSE.

    Thank you for your contribution!



    Contributing to tkchart

    Go to top

    Whats New ?

    • Added new parameters to Line object

      • Try on :

        Tests/Main - Test.py

        • point_highlight: str
        • point_highlight_size: int
        • point_highlight_color: str

        :: before

        :: after

        • point_highlight = "enabled"
        • point_highlight_size = 10
        • point_highlight_color = "#00FFFF"
  • Enhancements to Error Handling

  • Some bug fixes



  • go to PyPi

    go to GitHub

    Project details


    Download files

    Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

    Source Distribution

    tkchart-1.4.2.tar.gz (24.1 kB view details)

    Uploaded Source

    Built Distribution

    tkchart-1.4.2-py3-none-any.whl (19.5 kB view details)

    Uploaded Python 3

    File details

    Details for the file tkchart-1.4.2.tar.gz.

    File metadata

    • Download URL: tkchart-1.4.2.tar.gz
    • Upload date:
    • Size: 24.1 kB
    • Tags: Source
    • Uploaded using Trusted Publishing? No
    • Uploaded via: twine/5.0.0 CPython/3.12.1

    File hashes

    Hashes for tkchart-1.4.2.tar.gz
    Algorithm Hash digest
    SHA256 96c34077ad1b5711106cf943459b1cdca960b1456d42442c5e1273cc1e352e51
    MD5 3ddb090439e8c9a5d136bf468ec73cf2
    BLAKE2b-256 1a24d44fa399d0b0fa1656971af837e78101cef6b53a180a2a2a5f8f9a1efe69

    See more details on using hashes here.

    Provenance

    File details

    Details for the file tkchart-1.4.2-py3-none-any.whl.

    File metadata

    • Download URL: tkchart-1.4.2-py3-none-any.whl
    • Upload date:
    • Size: 19.5 kB
    • Tags: Python 3
    • Uploaded using Trusted Publishing? No
    • Uploaded via: twine/5.0.0 CPython/3.12.1

    File hashes

    Hashes for tkchart-1.4.2-py3-none-any.whl
    Algorithm Hash digest
    SHA256 f0a00a648364e6305d163ae62c1da6b23f96dd9c5b4f83a3d1ab47f52435341c
    MD5 54ccb375163b9e7590cc891af9cde8c9
    BLAKE2b-256 07907c82ac0678be1af71ffacdf7b578c8e77a1981627c3a1240b839f92ff465

    See more details on using hashes here.

    Provenance

    Supported by

    AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page