vizify 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Arun M
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ include README.md
vizify-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.2
2
+ Name: vizify
3
+ Version: 0.1.0
4
+ Summary: An automated data visualization package
5
+ Home-page: https://github.com/arun6832/vizify
6
+ Author: Arun M
7
+ Author-email: arunpappulli@gmail.com
8
+ License: MIT
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.7
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE.txt
15
+ Requires-Dist: pandas
16
+ Requires-Dist: numpy
17
+ Requires-Dist: seaborn
18
+ Requires-Dist: matplotlib
19
+ Requires-Dist: missingno
20
+ Requires-Dist: wordcloud
21
+ Dynamic: author
22
+ Dynamic: author-email
23
+ Dynamic: classifier
24
+ Dynamic: description
25
+ Dynamic: description-content-type
26
+ Dynamic: home-page
27
+ Dynamic: license
28
+ Dynamic: requires-dist
29
+ Dynamic: requires-python
30
+ Dynamic: summary
31
+
32
+ # Vizify
33
+
34
+ ## Overview
35
+ Vizify is a Python package designed to automate the process of data visualization. It generates a comprehensive PDF report containing various visual representations of a dataset, helping users analyze numerical and categorical data efficiently.
36
+
37
+ ## Features
38
+ - **Basic Statistics:** Summarizes key numerical insights.
39
+ - **Correlation Heatmap:** Displays relationships between numerical features.
40
+ - **Distribution Plots:** Visualizes data distributions with histograms.
41
+ - **Box Plots:** Highlights outliers and data spread.
42
+ - **Scatter Plots:** Shows relationships between numerical variables.
43
+ - **Violin Plots:** Combines box plot and density estimates.
44
+ - **Word Cloud:** Extracts textual insights from categorical features.
45
+ - **Outlier Detection:** Identifies extreme values using box plots.
46
+ - **Stacked Bar Charts:** Compares categorical data distributions.
47
+ - **Line Plots:** Represents trends over time.
48
+ - **Pie Charts:** Displays categorical distributions.
49
+ - **Automated PDF Generation:** Saves all visualizations in a structured PDF report.
50
+
51
+ ## Installation
52
+ To install Vizify, use pip:
53
+ ```bash
54
+ pip install vizify
55
+ ```
56
+
57
+ ## Usage
58
+ ### Import the Package
59
+ ```python
60
+ from vizify import Vizify
61
+ ```
62
+
63
+ ### Generate a Visualization Report
64
+ ```python
65
+ # Initialize Vizify with a CSV file
66
+ viz = Vizify("data.csv")
67
+
68
+ # Generate and save all visualizations in a PDF report
69
+ viz.show_all_visualizations()
70
+ ```
71
+
72
+ Upon execution, a file named `data_visualization_report.pdf` will be created in the working directory containing all visualizations.
73
+
74
+ ## Dependencies
75
+ Vizify requires the following Python libraries:
76
+ - pandas
77
+ - numpy
78
+ - seaborn
79
+ - matplotlib
80
+ - missingno
81
+ - wordcloud
82
+
83
+ These dependencies will be installed automatically with the package.
84
+
85
+ ## License
86
+ Vizify is released under the [MIT License](LICENSE.txt).
87
+
88
+ ## Contribution
89
+ Contributions are welcome! If you would like to improve the package, please fork the repository, make your changes, and submit a pull request.
90
+
91
+ ## Contact
92
+ For inquiries, please contact:
93
+ - **Author:** Arun M
94
+ - **Email:** arunpappulli@gmail.com
95
+ - **GitHub:** [Your GitHub Profile](https://github.com/arun6832)
96
+
97
+ ---
98
+
99
+ Thank you for using Vizify! รฐลธลกโ‚ฌ
vizify-0.1.0/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # Vizify
2
+
3
+ ## Overview
4
+ Vizify is a Python package designed to automate the process of data visualization. It generates a comprehensive PDF report containing various visual representations of a dataset, helping users analyze numerical and categorical data efficiently.
5
+
6
+ ## Features
7
+ - **Basic Statistics:** Summarizes key numerical insights.
8
+ - **Correlation Heatmap:** Displays relationships between numerical features.
9
+ - **Distribution Plots:** Visualizes data distributions with histograms.
10
+ - **Box Plots:** Highlights outliers and data spread.
11
+ - **Scatter Plots:** Shows relationships between numerical variables.
12
+ - **Violin Plots:** Combines box plot and density estimates.
13
+ - **Word Cloud:** Extracts textual insights from categorical features.
14
+ - **Outlier Detection:** Identifies extreme values using box plots.
15
+ - **Stacked Bar Charts:** Compares categorical data distributions.
16
+ - **Line Plots:** Represents trends over time.
17
+ - **Pie Charts:** Displays categorical distributions.
18
+ - **Automated PDF Generation:** Saves all visualizations in a structured PDF report.
19
+
20
+ ## Installation
21
+ To install Vizify, use pip:
22
+ ```bash
23
+ pip install vizify
24
+ ```
25
+
26
+ ## Usage
27
+ ### Import the Package
28
+ ```python
29
+ from vizify import Vizify
30
+ ```
31
+
32
+ ### Generate a Visualization Report
33
+ ```python
34
+ # Initialize Vizify with a CSV file
35
+ viz = Vizify("data.csv")
36
+
37
+ # Generate and save all visualizations in a PDF report
38
+ viz.show_all_visualizations()
39
+ ```
40
+
41
+ Upon execution, a file named `data_visualization_report.pdf` will be created in the working directory containing all visualizations.
42
+
43
+ ## Dependencies
44
+ Vizify requires the following Python libraries:
45
+ - pandas
46
+ - numpy
47
+ - seaborn
48
+ - matplotlib
49
+ - missingno
50
+ - wordcloud
51
+
52
+ These dependencies will be installed automatically with the package.
53
+
54
+ ## License
55
+ Vizify is released under the [MIT License](LICENSE.txt).
56
+
57
+ ## Contribution
58
+ Contributions are welcome! If you would like to improve the package, please fork the repository, make your changes, and submit a pull request.
59
+
60
+ ## Contact
61
+ For inquiries, please contact:
62
+ - **Author:** Arun M
63
+ - **Email:** arunpappulli@gmail.com
64
+ - **GitHub:** [Your GitHub Profile](https://github.com/arun6832)
65
+
66
+ ---
67
+
68
+ Thank you for using Vizify! ๐Ÿš€
vizify-0.1.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
vizify-0.1.0/setup.py ADDED
@@ -0,0 +1,28 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ setup(
4
+ name="vizify",
5
+ version="0.1.0",
6
+ author="Arun M",
7
+ author_email="arunpappulli@gmail.com",
8
+ description="An automated data visualization package",
9
+ long_description=open("README.md").read(),
10
+ long_description_content_type="text/markdown",
11
+ url="https://github.com/arun6832/vizify",
12
+ packages=find_packages(),
13
+ install_requires=[
14
+ "pandas",
15
+ "numpy",
16
+ "seaborn",
17
+ "matplotlib",
18
+ "missingno",
19
+ "wordcloud"
20
+ ],
21
+ license="MIT",
22
+ classifiers=[
23
+ "Programming Language :: Python :: 3",
24
+ "License :: OSI Approved :: MIT License",
25
+ "Operating System :: OS Independent",
26
+ ],
27
+ python_requires=">=3.7",
28
+ )
@@ -0,0 +1 @@
1
+ from .vizify import Vizify
@@ -0,0 +1,183 @@
1
+ import pandas as pd
2
+ import numpy as np
3
+ import seaborn as sns
4
+ import matplotlib.pyplot as plt
5
+ import missingno as msno
6
+ from wordcloud import WordCloud
7
+ from matplotlib.backends.backend_pdf import PdfPages
8
+ import warnings
9
+
10
+ warnings.filterwarnings("ignore")
11
+
12
+
13
+ class Vizify:
14
+ def __init__(self, file_path):
15
+ """Initialize Vizify with the dataset."""
16
+ try:
17
+ self.data = pd.read_csv(file_path, encoding="utf-8") # Default UTF-8
18
+ except UnicodeDecodeError:
19
+ print("โš ๏ธ UTF-8 decoding failed! Trying 'ISO-8859-1' encoding...")
20
+ self.data = pd.read_csv(file_path, encoding="ISO-8859-1") # Alternative encoding
21
+
22
+ self.pdf_filename = "data_visualization_report.pdf"
23
+ self.num_cols = self.data.select_dtypes(include=["number"]).columns.tolist()
24
+ self.cat_cols = self.data.select_dtypes(include=["object", "category"]).columns.tolist()
25
+
26
+ def add_page_title(self, pdf, title):
27
+ """Helper function to add a title page in the PDF."""
28
+ fig, ax = plt.subplots(figsize=(8, 5))
29
+ ax.text(0.5, 0.5, title, fontsize=16, fontweight="bold", ha="center", va="center")
30
+ ax.axis("off")
31
+ pdf.savefig(fig)
32
+ plt.close(fig)
33
+
34
+ def basic_statistics(self, pdf):
35
+ """Generate basic statistics for numerical columns."""
36
+ self.add_page_title(pdf, "Basic Statistics")
37
+ stats = self.data.describe().T
38
+ fig, ax = plt.subplots(figsize=(8, 5))
39
+ ax.axis("tight")
40
+ ax.axis("off")
41
+ ax.table(cellText=stats.values, colLabels=stats.columns, rowLabels=stats.index, loc="center")
42
+ pdf.savefig(fig)
43
+ plt.close(fig)
44
+
45
+ def correlation_heatmap(self, pdf):
46
+ """Generate a correlation heatmap for numerical columns."""
47
+ if len(self.num_cols) > 1:
48
+ fig, ax = plt.subplots(figsize=(10, 6))
49
+ sns.heatmap(self.data[self.num_cols].corr(), annot=True, cmap="coolwarm", linewidths=0.5, ax=ax)
50
+ ax.set_title("Correlation Heatmap")
51
+ pdf.savefig(fig)
52
+ plt.close(fig)
53
+
54
+ def distribution_plots(self, pdf):
55
+ """Generate distribution plots for numerical columns."""
56
+ self.add_page_title(pdf, "Distribution Plots")
57
+ for col in self.num_cols:
58
+ fig, ax = plt.subplots(figsize=(8, 5))
59
+ sns.histplot(self.data[col], kde=True, ax=ax)
60
+ ax.set_title(f"Distribution of {col}")
61
+ pdf.savefig(fig)
62
+ plt.close(fig)
63
+
64
+ def box_plots(self, pdf):
65
+ """Generate box plots for numerical columns."""
66
+ self.add_page_title(pdf, "Box Plots")
67
+ for col in self.num_cols:
68
+ fig, ax = plt.subplots(figsize=(8, 5))
69
+ sns.boxplot(x=self.data[col], ax=ax)
70
+ ax.set_title(f"Box Plot of {col}")
71
+ pdf.savefig(fig)
72
+ plt.close(fig)
73
+
74
+ def scatter_plots(self, pdf):
75
+ """Generate scatter plots for numerical variables."""
76
+ self.add_page_title(pdf, "Scatter Plots")
77
+ for i in range(len(self.num_cols) - 1):
78
+ for j in range(i + 1, len(self.num_cols)):
79
+ fig, ax = plt.subplots(figsize=(8, 5))
80
+ sns.scatterplot(x=self.data[self.num_cols[i]], y=self.data[self.num_cols[j]], ax=ax)
81
+ ax.set_title(f"Scatter Plot of {self.num_cols[i]} vs {self.num_cols[j]}")
82
+ pdf.savefig(fig)
83
+ plt.close(fig)
84
+
85
+ def violin_plots(self, pdf):
86
+ """Generate violin plots for numerical columns."""
87
+ self.add_page_title(pdf, "Violin Plots")
88
+ for col in self.num_cols:
89
+ fig, ax = plt.subplots(figsize=(8, 5))
90
+ sns.violinplot(y=self.data[col], ax=ax)
91
+ ax.set_title(f"Violin Plot of {col}")
92
+ pdf.savefig(fig)
93
+ plt.close(fig)
94
+
95
+ def wordcloud(self, pdf):
96
+ """Generate a word cloud for text data."""
97
+ if len(self.cat_cols) > 0:
98
+ text_data = " ".join(self.data[self.cat_cols].astype(str).values.flatten())
99
+ wordcloud = WordCloud(width=800, height=400, background_color="white").generate(text_data)
100
+ fig, ax = plt.subplots(figsize=(10, 5))
101
+ ax.imshow(wordcloud, interpolation="bilinear")
102
+ ax.axis("off")
103
+ ax.set_title("Word Cloud of Categorical Data")
104
+ pdf.savefig(fig)
105
+ plt.close(fig)
106
+
107
+ def outlier_detection(self, pdf):
108
+ """Detect outliers in numerical columns using boxplots."""
109
+ self.add_page_title(pdf, "Outlier Detection")
110
+ for col in self.num_cols:
111
+ fig, ax = plt.subplots(figsize=(8, 5))
112
+ sns.boxplot(y=self.data[col], ax=ax)
113
+ ax.set_title(f"Outliers in {col}")
114
+ pdf.savefig(fig)
115
+ plt.close(fig)
116
+
117
+ def stacked_bar_chart(self, pdf):
118
+ """Generate stacked bar charts for categorical columns."""
119
+ self.add_page_title(pdf, "Stacked Bar Charts")
120
+ for col in self.cat_cols:
121
+ value_counts = self.data[col].value_counts()
122
+ if value_counts.empty:
123
+ continue
124
+ fig, ax = plt.subplots(figsize=(8, 5))
125
+ value_counts.plot(kind="bar", stacked=True, ax=ax, color=sns.color_palette("pastel"))
126
+ ax.set_title(f"Stacked Bar Chart of {col}")
127
+ pdf.savefig(fig)
128
+ plt.close(fig)
129
+
130
+ def line_plots(self, pdf):
131
+ """Generate line charts for numerical columns."""
132
+ self.add_page_title(pdf, "Line Charts")
133
+ for col in self.num_cols:
134
+ fig, ax = plt.subplots(figsize=(8, 5))
135
+ sns.lineplot(data=self.data[col], ax=ax, marker="o")
136
+ ax.set_title(f"Line Chart of {col}")
137
+ pdf.savefig(fig)
138
+ plt.close(fig)
139
+
140
+ def pie_chart(self, pdf):
141
+ """Generate pie charts for categorical variables."""
142
+ for cat_col in self.cat_cols:
143
+ plt.figure(figsize=(8, 8))
144
+ try:
145
+ value_counts = self.data[cat_col].value_counts()
146
+ if value_counts.empty:
147
+ continue
148
+
149
+ plt.pie(value_counts, labels=value_counts.index, autopct='%1.1f%%',
150
+ startangle=140, colors=sns.color_palette("pastel"))
151
+ plt.title(f"Pie Chart for {cat_col}", fontsize=12, fontweight="bold")
152
+ plt.axis('equal')
153
+ pdf.savefig()
154
+ plt.close()
155
+ except Exception as e:
156
+ print(f"Could not generate pie chart for {cat_col}: {e}")
157
+
158
+ def show_all_visualizations(self):
159
+ """Generate all visualizations and save them to a single PDF."""
160
+ with PdfPages(self.pdf_filename) as pdf:
161
+ self.basic_statistics(pdf)
162
+ self.correlation_heatmap(pdf)
163
+ self.distribution_plots(pdf)
164
+ self.box_plots(pdf)
165
+ self.scatter_plots(pdf)
166
+ self.line_plots(pdf)
167
+ self.violin_plots(pdf)
168
+ self.wordcloud(pdf)
169
+ self.outlier_detection(pdf)
170
+
171
+ if len(self.cat_cols) > 0:
172
+ self.stacked_bar_chart(pdf)
173
+ self.pie_chart(pdf)
174
+
175
+ print(f"โœ… All visualizations saved in {self.pdf_filename}")
176
+
177
+
178
+ # ๐Ÿ“Œ User Input for CSV File
179
+ file_path = input("๐Ÿ“‚ Enter the CSV file path: ").strip()
180
+
181
+ # ๐Ÿ”„ Run Vizify
182
+ viz = Vizify(file_path)
183
+ viz.show_all_visualizations()
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.2
2
+ Name: vizify
3
+ Version: 0.1.0
4
+ Summary: An automated data visualization package
5
+ Home-page: https://github.com/arun6832/vizify
6
+ Author: Arun M
7
+ Author-email: arunpappulli@gmail.com
8
+ License: MIT
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.7
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE.txt
15
+ Requires-Dist: pandas
16
+ Requires-Dist: numpy
17
+ Requires-Dist: seaborn
18
+ Requires-Dist: matplotlib
19
+ Requires-Dist: missingno
20
+ Requires-Dist: wordcloud
21
+ Dynamic: author
22
+ Dynamic: author-email
23
+ Dynamic: classifier
24
+ Dynamic: description
25
+ Dynamic: description-content-type
26
+ Dynamic: home-page
27
+ Dynamic: license
28
+ Dynamic: requires-dist
29
+ Dynamic: requires-python
30
+ Dynamic: summary
31
+
32
+ # Vizify
33
+
34
+ ## Overview
35
+ Vizify is a Python package designed to automate the process of data visualization. It generates a comprehensive PDF report containing various visual representations of a dataset, helping users analyze numerical and categorical data efficiently.
36
+
37
+ ## Features
38
+ - **Basic Statistics:** Summarizes key numerical insights.
39
+ - **Correlation Heatmap:** Displays relationships between numerical features.
40
+ - **Distribution Plots:** Visualizes data distributions with histograms.
41
+ - **Box Plots:** Highlights outliers and data spread.
42
+ - **Scatter Plots:** Shows relationships between numerical variables.
43
+ - **Violin Plots:** Combines box plot and density estimates.
44
+ - **Word Cloud:** Extracts textual insights from categorical features.
45
+ - **Outlier Detection:** Identifies extreme values using box plots.
46
+ - **Stacked Bar Charts:** Compares categorical data distributions.
47
+ - **Line Plots:** Represents trends over time.
48
+ - **Pie Charts:** Displays categorical distributions.
49
+ - **Automated PDF Generation:** Saves all visualizations in a structured PDF report.
50
+
51
+ ## Installation
52
+ To install Vizify, use pip:
53
+ ```bash
54
+ pip install vizify
55
+ ```
56
+
57
+ ## Usage
58
+ ### Import the Package
59
+ ```python
60
+ from vizify import Vizify
61
+ ```
62
+
63
+ ### Generate a Visualization Report
64
+ ```python
65
+ # Initialize Vizify with a CSV file
66
+ viz = Vizify("data.csv")
67
+
68
+ # Generate and save all visualizations in a PDF report
69
+ viz.show_all_visualizations()
70
+ ```
71
+
72
+ Upon execution, a file named `data_visualization_report.pdf` will be created in the working directory containing all visualizations.
73
+
74
+ ## Dependencies
75
+ Vizify requires the following Python libraries:
76
+ - pandas
77
+ - numpy
78
+ - seaborn
79
+ - matplotlib
80
+ - missingno
81
+ - wordcloud
82
+
83
+ These dependencies will be installed automatically with the package.
84
+
85
+ ## License
86
+ Vizify is released under the [MIT License](LICENSE.txt).
87
+
88
+ ## Contribution
89
+ Contributions are welcome! If you would like to improve the package, please fork the repository, make your changes, and submit a pull request.
90
+
91
+ ## Contact
92
+ For inquiries, please contact:
93
+ - **Author:** Arun M
94
+ - **Email:** arunpappulli@gmail.com
95
+ - **GitHub:** [Your GitHub Profile](https://github.com/arun6832)
96
+
97
+ ---
98
+
99
+ Thank you for using Vizify! รฐลธลกโ‚ฌ
@@ -0,0 +1,11 @@
1
+ LICENSE.txt
2
+ MANIFEST.in
3
+ README.md
4
+ setup.py
5
+ vizify/__init__.py
6
+ vizify/vizify.py
7
+ vizify.egg-info/PKG-INFO
8
+ vizify.egg-info/SOURCES.txt
9
+ vizify.egg-info/dependency_links.txt
10
+ vizify.egg-info/requires.txt
11
+ vizify.egg-info/top_level.txt
@@ -0,0 +1,6 @@
1
+ pandas
2
+ numpy
3
+ seaborn
4
+ matplotlib
5
+ missingno
6
+ wordcloud
@@ -0,0 +1 @@
1
+ vizify