# ChartForgeTK
A modern, smooth, and dynamic charting library for Python using pure Tkinter. Create beautiful, interactive charts with minimal code.
## Features
- 🎨 Modern and clean design
- 📊 Multiple chart types:
- Line Charts
- Bar Charts
- Pie Charts
- Column Charts
- Grouped Bar Charts
- Scatter Plots
- Bubble Charts
- Heatmaps
- Network Graphs
- ✨ Interactive features:
- Tooltips
- Hover effects
- Click handlers
- 🎯 Pure Tkinter - no external dependencies
- 🌈 Customizable themes and styles
- 📱 Responsive and resizable
- 🚀 Easy to use API
## Installation
```bash
pip install ChartForgeTK
```
## Quick Start
```python
from ChartForgeTK import LineChart
import tkinter as tk
# Create window
root = tk.Tk()
root.geometry("800x600")
# Create and configure chart
chart = LineChart(root)
chart.pack(fill="both", expand=True)
# Plot data
data = [10, 45, 30, 60, 25, 85, 40]
chart.plot(data)
# Start application
root.mainloop()
```
## Examples
### Line Chart with Custom Labels
```python
from ChartForgeTK import LineChart
import tkinter as tk
root = tk.Tk()
chart = LineChart(root)
chart.pack(fill="both", expand=True)
data = [10, 45, 30, 60, 25]
labels = ["Mon", "Tue", "Wed", "Thu", "Fri"]
chart.plot(data, labels)
root.mainloop()
```
### Interactive Bubble Chart
```python
from ChartForgeTK import BubbleChart
import tkinter as tk
root = tk.Tk()
chart = BubbleChart(root)
chart.pack(fill="both", expand=True)
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 3, 5, 4]
sizes = [10, 30, 20, 40, 15]
labels = ["A", "B", "C", "D", "E"]
chart.plot(x_data, y_data, sizes, labels)
root.mainloop()
```
### Network Graph
```python
from ChartForgeTK import NetworkGraph
import tkinter as tk
root = tk.Tk()
chart = NetworkGraph(root)
chart.pack(fill="both", expand=True)
nodes = ["A", "B", "C", "D", "E"]
edges = [("A", "B"), ("B", "C"), ("C", "D"), ("D", "E")]
node_values = [1.0, 2.0, 1.5, 2.5, 1.8]
edge_values = [0.5, 1.0, 0.8, 1.2]
chart.plot(nodes, edges, node_values, edge_values)
root.mainloop()
```
## Documentation
For more examples and detailed documentation, visit our [GitHub repository](https://github.com/ghassenTn/ChartForgeTK).
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/ghassenTn/ChartForgeTK",
"name": "ChartForgeTK",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "chart, graph, visualization, tkinter, gui, plot, matplotlib alternative",
"author": "Ghassen",
"author_email": "ghassen.xr@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/91/f8/1191882f4c85559b6d2adbe206661ee6b5ddc03546149b1eab01d76e2ace/chartforgetk-1.0.2.tar.gz",
"platform": null,
"description": "# ChartForgeTK\n\nA modern, smooth, and dynamic charting library for Python using pure Tkinter. Create beautiful, interactive charts with minimal code.\n\n## Features\n\n- \ud83c\udfa8 Modern and clean design\n- \ud83d\udcca Multiple chart types:\n - Line Charts\n - Bar Charts\n - Pie Charts\n - Column Charts\n - Grouped Bar Charts\n - Scatter Plots\n - Bubble Charts\n - Heatmaps\n - Network Graphs\n- \u2728 Interactive features:\n - Tooltips\n - Hover effects\n - Click handlers\n- \ud83c\udfaf Pure Tkinter - no external dependencies\n- \ud83c\udf08 Customizable themes and styles\n- \ud83d\udcf1 Responsive and resizable\n- \ud83d\ude80 Easy to use API\n\n## Installation\n\n```bash\npip install ChartForgeTK\n```\n\n## Quick Start\n\n```python\nfrom ChartForgeTK import LineChart\nimport tkinter as tk\n\n# Create window\nroot = tk.Tk()\nroot.geometry(\"800x600\")\n\n# Create and configure chart\nchart = LineChart(root)\nchart.pack(fill=\"both\", expand=True)\n\n# Plot data\ndata = [10, 45, 30, 60, 25, 85, 40]\nchart.plot(data)\n\n# Start application\nroot.mainloop()\n```\n\n## Examples\n\n### Line Chart with Custom Labels\n```python\nfrom ChartForgeTK import LineChart\nimport tkinter as tk\n\nroot = tk.Tk()\nchart = LineChart(root)\nchart.pack(fill=\"both\", expand=True)\n\ndata = [10, 45, 30, 60, 25]\nlabels = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\"]\nchart.plot(data, labels)\n\nroot.mainloop()\n```\n\n### Interactive Bubble Chart\n```python\nfrom ChartForgeTK import BubbleChart\nimport tkinter as tk\n\nroot = tk.Tk()\nchart = BubbleChart(root)\nchart.pack(fill=\"both\", expand=True)\n\nx_data = [1, 2, 3, 4, 5]\ny_data = [2, 4, 3, 5, 4]\nsizes = [10, 30, 20, 40, 15]\nlabels = [\"A\", \"B\", \"C\", \"D\", \"E\"]\n\nchart.plot(x_data, y_data, sizes, labels)\nroot.mainloop()\n```\n\n### Network Graph\n```python\nfrom ChartForgeTK import NetworkGraph\nimport tkinter as tk\n\nroot = tk.Tk()\nchart = NetworkGraph(root)\nchart.pack(fill=\"both\", expand=True)\n\nnodes = [\"A\", \"B\", \"C\", \"D\", \"E\"]\nedges = [(\"A\", \"B\"), (\"B\", \"C\"), (\"C\", \"D\"), (\"D\", \"E\")]\nnode_values = [1.0, 2.0, 1.5, 2.5, 1.8]\nedge_values = [0.5, 1.0, 0.8, 1.2]\n\nchart.plot(nodes, edges, node_values, edge_values)\nroot.mainloop()\n```\n\n## Documentation\n\nFor more examples and detailed documentation, visit our [GitHub repository](https://github.com/ghassenTn/ChartForgeTK).\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n",
"bugtrack_url": null,
"license": null,
"summary": "A modern, smooth, and dynamic charting library for Python using pure Tkinter",
"version": "1.0.2",
"project_urls": {
"Bug Reports": "https://github.com/ghassenTn/ChartForgeTK/issues",
"Documentation": "https://github.com/ghassenTn/ChartForgeTK#readme",
"Homepage": "https://github.com/ghassenTn/ChartForgeTK",
"Source": "https://github.com/ghassenTn/ChartForgeTK"
},
"split_keywords": [
"chart",
" graph",
" visualization",
" tkinter",
" gui",
" plot",
" matplotlib alternative"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b72e6f4a2926b064193668f0f142e395b78ea959d94690f2e47c76b2d92fbc2e",
"md5": "2d53586a9e05c250cc4a7244d331853c",
"sha256": "be96d21c726691e255a551061057480c137dd047356af5624af8a5aa694a3832"
},
"downloads": -1,
"filename": "ChartForgeTK-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2d53586a9e05c250cc4a7244d331853c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 20544,
"upload_time": "2025-01-13T11:24:58",
"upload_time_iso_8601": "2025-01-13T11:24:58.504463Z",
"url": "https://files.pythonhosted.org/packages/b7/2e/6f4a2926b064193668f0f142e395b78ea959d94690f2e47c76b2d92fbc2e/ChartForgeTK-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "91f81191882f4c85559b6d2adbe206661ee6b5ddc03546149b1eab01d76e2ace",
"md5": "ca339fffcea08a632bbe1a29b8ea5f33",
"sha256": "b48496474ff199c4a948c9da7a8efc543d9e7340fc716dbd33739fbcb9d6ba91"
},
"downloads": -1,
"filename": "chartforgetk-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "ca339fffcea08a632bbe1a29b8ea5f33",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 24739,
"upload_time": "2025-01-13T11:25:00",
"upload_time_iso_8601": "2025-01-13T11:25:00.144330Z",
"url": "https://files.pythonhosted.org/packages/91/f8/1191882f4c85559b6d2adbe206661ee6b5ddc03546149b1eab01d76e2ace/chartforgetk-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-13 11:25:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ghassenTn",
"github_project": "ChartForgeTK",
"github_not_found": true,
"lcname": "chartforgetk"
}