Added MPL Pie Chart node.

This commit is contained in:
HowToSD
2025-02-25 13:18:05 -08:00
parent 47965bc771
commit d330efa71c
7 changed files with 98 additions and 1 deletions
+68
View File
@@ -0,0 +1,68 @@
from typing import Any, Dict
from matplotlib import pyplot as plt
import pandas as pd
from .util import plot_post_steps
class MPLPieChart:
"""
:MPL Pie Chart
Generates a pie chart from a pandas DataFrame.
Below screenshot shows a workflow to generate a pie chart from categorical data.
![Pie chart](../images/pie_chart.png)
category: Plot
"""
@classmethod
def INPUT_TYPES(cls) -> Dict[str, Any]:
"""
Defines the input types for the `line_plot` function.
Returns:
Dict[str, Any]: A dictionary specifying required input types.
"""
return {
"required": {
"dataframe": ("DATAFRAME", {}),
"label_column_name": ("STRING", {"default": ""}),
"data_column_name": ("STRING", {"default": ""}),
"title": ("STRING", {"default": ""})
}
}
RETURN_TYPES: tuple = ("IMAGE",)
FUNCTION: str = "f"
CATEGORY: str = "Data Analysis"
def f(self,
dataframe: pd.DataFrame,
label_column_name: str,
data_column_name: str,
title: str) -> tuple:
"""
Generates a pie chart from a Pandas DataFrame.
Args:
dataframe (DataFrame): The DataFrame.
label_column_name (str): The column name for the labels.
data_column_name (str): The column name for the data.
title (str): The title of the plot.
Returns:
tuple: A tuple containing the image tensor representation of the plot.
"""
df = dataframe
# Create the plot
fig, ax = plt.subplots()
ax.pie(df[data_column_name], labels=df[label_column_name], autopct='%1.1f%%', startangle=140)
return plot_post_steps(
fig,
ax,
plt,
title,
"",
"",
False)