- Live Update: Display live data with line charts.
- Multiple Lines: Support for plotting multiple lines on the same chart for easy comparison.
- Color Customization: Customize colors to match your application's design or data representation.
- Font Customization: Adjust fonts for text elements to enhance readability.
- Dimension Customization: Customize chart dimensions to fit various display sizes and layouts.
-
Installation
pip install tkchart
-
Importing
import tkchart
-
import package
import tkchart
-
Create Line Chart and place the chart
chart = tkchart.LineChart( master=root, x_axis_values=("a", "b", "c", "d", "e", "f"), y_axis_values=(100, 900) ) chart.place(x=10, y=10)
-
Create Line
line = tkchart.Line(master=chart)
-
Display Data display data using a loop
def loop(): while True: random_data = random.choice(range(100, 900)) chart.show_data(line=line, data=[random_data]) time.sleep(1) #call the loop as thead theading.Thread(target=loop).start()
-
Simple
1.mp4
import tkinter as tk # Importing the tkinter library as tk import tkchart # Importing the tkchart module for chart creation import random # Importing the random module for generating random data import threading # Importing the threading module for running tasks concurrently import time # Importing the time module for adding delays # Create the root window and configure root = tk.Tk() root.configure(bg="#0d1117") root.geometry("720x430+200+200") # Create a line chart widget line_chart = tkchart.LineChart( master=root, # Set the master as the root window x_axis_values=("01-01", "01-02", "01-03", "01-04", "01-05", "01-06", "01-07", "01-08", "01-09", "01-10"), # X-axis values y_axis_values=(0, 1000) # Y-axis values (range) ) line_chart.pack(pady=15) # Pack the line chart widget into the root # Create a line for the line chart line = tkchart.Line(master=line_chart) # Set the master as the line chart def display_data(): """Function to continuously display random data on the line chart.""" while True: random_data = [random.choice(range(0, 1000))] # Generate random data between 0 and 1000 line_chart.show_data(line=line, data=random_data) # Display the random data on the line chart time.sleep(0.5) # Pause for 0.5 seconds before the next iteration # Call the display_data function as a separate thread threading.Thread(target=display_data).start() # Start the main event loop root.mainloop()
-
Simple style
2.mp4
import tkinter as tk # Importing the tkinter library as tk import tkchart # Importing the tkchart module for chart creation import random # Importing the random module for generating random data import threading # Importing the threading module for running tasks concurrently import time # Importing the time module for adding delays # Create the root window and configure root = tk.Tk() root.configure(bg="#0d1117") root.geometry("720x430+200+200") # Create a line chart widget line_chart = tkchart.LineChart( master=root, # Set the master as the root window x_axis_values=("01-01", "01-02", "01-03", "01-04", "01-05", "01-06", "01-07", "01-08", "01-09", "01-10"), # X-axis values y_axis_values=(0, 1000), # Y-axis values (range) y_axis_label_count=10, # set y axis labels count to 10 ) line_chart.pack(pady=15) # Pack the line chart widget into the root # Create a line for the line chart line = tkchart.Line( master=line_chart, # Set the master as the line chart size=2, # Set the line size to 2 fill="enabled" # enable line fill ) def display_data(): """Function to continuously display random data on the line chart.""" while True: random_data = [random.choice(range(0, 1000))] # Generate random data between 0 and 1000 line_chart.show_data(line=line, data=random_data) # Display the random data on the line chart time.sleep(0.5) # Pause for 0.5 seconds before the next iteration # Call the display_data function as a separate thread threading.Thread(target=display_data).start() # Start the main event loop root.mainloop()
-
2 lines with different line styles
3.mp4
import tkinter as tk # Importing the tkinter library as tk import tkchart # Importing the tkchart module for chart creation import random # Importing the random module for generating random data import threading # Importing the threading module for running tasks concurrently import time # Importing the time module for adding delays # Create the root window and configure root = tk.Tk() root.configure(bg="#0d1117") root.geometry("720x430+200+200") # Create a line chart widget line_chart = tkchart.LineChart( master=root, # Set the master as the root window x_axis_values=("01-01", "01-02", "01-03", "01-04", "01-05", "01-06", "01-07", "01-08", "01-09", "01-10"), # X-axis values y_axis_values=(0, 1000), # Y-axis values (range) y_axis_label_count=10, # set y axis labels count to 10 ) line_chart.pack(pady=15) # Pack the line chart widget into the root line1 = tkchart.Line( master=line_chart, # Set the master as the line chart color="#5dffb6", # index 0 for light and 1 for dark theme size=2, # Set the line size to 2 style="dashed", # style change to dashed style_type=(10, 5), #index 0 for dash width and 1 for space between dashes ) line2 = tkchart.Line( master=line_chart, # Set the master as the line chart color="#FFBAD2", # index 0 for light and 1 for dark theme size=2, # Set the line size to 2 point_highlight="enabled", # enable point highlight point_highlight_color="#FFBAD2", # enable point highlight ) def display_data(): """Function to continuously display random data on the line chart.""" while True: random_data = [random.choice(range(0, 1000))] # Generate random data between 0 and 1000 line_chart.show_data(line=line1, data=random_data) # Display the random data on the line 1 on chart random_data = [random.choice(range(0, 1000))] # Generate random data between 0 and 1000 line_chart.show_data(line=line2, data=random_data) # Display the random data on the line 2 on chart time.sleep(0.5) # Pause for 0.5 seconds before the next iteration # Call the display_data function as a separate thread threading.Thread(target=display_data).start() # Start the main event loop root.mainloop()
-
3 lines with different line styles
4.mp4
import tkinter as tk # Importing the tkinter library as tk import tkchart # Importing the tkchart module for chart creation import random # Importing the random module for generating random data import threading # Importing the threading module for running tasks concurrently import time # Importing the time module for adding delays # Create the root window and configure root = tk.Tk() root.configure(bg="#0d1117") root.geometry("720x430+200+200") # Create a line chart widget line_chart = tkchart.LineChart( master=root, # Set the master as the root window x_axis_values=("01-01", "01-02", "01-03", "01-04", "01-05", "01-06", "01-07", "01-08", "01-09", "01-10"), # X-axis values y_axis_values=(0, 1000), # Y-axis values (range) y_axis_label_count=10, # set y axis labels count to 10 ) line_chart.pack(pady=15) # Pack the line chart widget into the root # Create a line 1 for the line chart line1 = tkchart.Line( master=line_chart, # Set the master as the line chart size=2, # Set the line size to 2 fill="enabled" # enable line fill ) line2 = tkchart.Line( master=line_chart, # Set the master as the line chart color="#5dffb6", # index 0 for light and 1 for dark theme size=2, # Set the line size to 2 style="dashed", # style change to dashed style_type=(10, 5), #index 0 for dash width and 1 for space between dashes ) line3 = tkchart.Line( master=line_chart, # Set the master as the line chart color="#FFBAD2", # index 0 for light and 1 for dark theme size=2, # Set the line size to 2 point_highlight="enabled", # enable point highlight point_highlight_color="#FFBAD2", # enable point highlight ) def display_data(): """Function to continuously display random data on the line chart.""" while True: random_data = random.choices(range(0, 1000),k=1) # Generate random data between 0 and 1000 line_chart.show_data(line=line1, data=random_data) # Display the random data on the line 1 on chart random_data = random.choices(range(0, 1000),k=1) # Generate random data between 0 and 1000 line_chart.show_data(line=line2, data=random_data) # Display the random data on the line 2 on chart random_data = random.choices(range(0, 1000),k=1) # Generate random data between 0 and 1000 line_chart.show_data(line=line3, data=random_data) # Display the random data on the line 3 on chart time.sleep(0.5) # Pause for 0.5 seconds before the next iteration # Call the display_data function as a separate thread threading.Thread(target=display_data).start() # Start the main event loop root.mainloop()
-
Advance (Actually not, Just Two More Attributes Added)
5.mp4
import tkinter as tk # Importing the tkinter library as tk import tkchart # Importing the tkchart module for chart creation import random # Importing the random module for generating random data import threading # Importing the threading module for running tasks concurrently import time # Importing the time module for adding delays # Create the root window and configure root = tk.Tk() root.configure(bg = "#0d1117") root.geometry("720x430+200+200") # Create a line chart widget line_chart = tkchart.LineChart( master=root, # Set the master as the root window x_axis_values=("01-01", "01-02", "01-03", "01-04", "01-05", "01-06", "01-07", "01-08", "01-09", "01-10"), # X-axis values y_axis_values=(0, 1000), # Y-axis values (range) y_axis_label_count=10, # set y axis labels count to 1 y_axis_section_count=10, x_axis_section_count=10, ) line_chart.pack(pady=15) # Pack the line chart widget into the root line1 = tkchart.Line( master=line_chart, # Set the master as the line chart color="#5dffb6", # index 0 for light and 1 for dark theme size=2, # Set the line size to 2 style="dashed", # style change to dashed style_type=(10, 5), #index 0 for dash width and 1 for space between dashes ) line2 = tkchart.Line( master=line_chart, # Set the master as the line chart color="#FFBAD2", # index 0 for light and 1 for dark theme size=2, # Set the line size to 2 point_highlight="enabled", # enable point highlight point_highlight_color="#FFBAD2", # enable point highlight ) def display_data(): """Function to continuously display random data on the line chart.""" while True: random_data = [random.choice(range(0, 1000))] # Generate random data between 0 and 1000 line_chart.show_data(line=line1, data=random_data) # Display the random data on the line 1 on chart random_data = [random.choice(range(0, 1000))] # Generate random data between 0 and 1000 line_chart.show_data(line=line2, data=random_data) # Display the random data on the line 2 on chart time.sleep(0.5) # Pause for 0.5 seconds before the next iteration # Call the display_data function as a separate thread threading.Thread(target=display_data).start() # Start the main event loop root.mainloop()
Explore customizable features such as colors, fonts, and more in the documentation.