diff --git a/Scripts/data_desc_graph.py b/Scripts/data_desc_graph.py new file mode 100644 index 0000000..228381a --- /dev/null +++ b/Scripts/data_desc_graph.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# coding: utf-8 + +# In[1]: + + +def data_desc_graph(df): + try: + # Check if necessary libraries are already imported + import pandas as pd + import matplotlib.pyplot as plt + import math + except ImportError: + # If any library is not imported, load the necessary libraries + import pandas as pd + import matplotlib.pyplot as plt + import math + return "Libraries loaded" + + num_columns = df.shape[1] + + if num_columns % 3 == 0: + num_rows = num_columns // 3 + else: + num_rows = math.ceil(num_columns / 3) + + fig, axes = plt.subplots(num_rows, 3, figsize=(15, 5 * num_rows)) + axes = axes.flatten() + + for i, column in enumerate(df.columns): + ax = axes[i] + if pd.api.types.is_numeric_dtype(df[column]): + # If the dtype is numeric, show a histogram + df[column].plot(kind='hist', ax=ax, color='skyblue', edgecolor='black') + ax.set_title(f'Histogram for {column}') + ax.set_xlabel(column) + ax.set_ylabel('Frequency') + else: + # If the dtype is not numeric, show a bar chart + value_counts = df[column].value_counts() + value_counts.plot(kind='bar', ax=ax, rot=45, color='skyblue', edgecolor='black') + ax.set_title(f'Bar Chart for {column}') + ax.set_xlabel(column) + ax.set_ylabel('Count') + + fig.suptitle('This script produces Histogram for Numerical Data, Bar Charts for Categorical Data', fontsize=16) + plt.tight_layout(rect=[0, 0, 1, 0.96]) # Adjust the layout for the main title + plt.show() + + return "Dependencies Satisfied" + + +# In[ ]: + + + +