SNS Pairplot
See every column against every other column at once
- dataframe
- IMAGE
The pairplot is the "I have no idea what's in this dataset" chart. It takes a DataFrame and draws every numeric column against every other numeric column - a grid of scatter plots, with the distribution of each column along the diagonal. SNSPairplot wraps Seaborn's pairplot as a ComfyUI node, and it's the best first move in this pack when you've loaded data you've never seen before. Within one image you'll spot which columns correlate, which ones are garbage, and which ones deserve a closer look.
What makes it different from the other SNS nodes
Unlike SNS Line Plot or SNS Scatter Plot, there's no x_column_name or y_column_name. You hand it a whole dataframe and it figures out the axes itself. The inputs are:
- hue_column_name - optional column that colors the points, usually a categorical like
teamorcategory. Leave it empty and the grid renders in a single color. - title, style, palette - the usual labels and Seaborn theming (
deep/muted/pastel/bright/dark/colorblind;darkgrid/whitegrid/dark/white/ticks).
That's it. Five fields, no fiddling, and the output is an IMAGE you can drop into Save Image or a preview node.
How it works
Under the hood it calls sns.pairplot(df, hue=...) (or without hue), then tacks the title onto the figure with suptitle and renders the whole grid to a PNG, converted to the same normalized float tensor any image node expects. The diagonal shows each column's distribution; each off-diagonal cell is a scatter of two columns. If you pass a hue column, every cell gets colored by it - that's the fastest way to see whether groups separate cleanly along some pair of variables.
The trap: too many columns
Pairplots scale with the square of the number of numeric columns. Feed it a DataFrame with 15 numeric columns and you get 225 little plots in one image - unreadable, and slow to render since it's all CPU. The fix is upstream: use Pandas Select Columns to trim to the handful of variables you actually care about before it reaches this node. For a quick exploratory pass over a wide dataset, do a couple of passes with different column subsets rather than one giant grid. One light aside: the hue column itself stays out of the grid, so pick your categorical before you trim.
Installing it
Same pack, same steps as every node here. ComfyUI Manager → search "Data analysis" → install ComfyUI-Data-Analysis → restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/HowToSD/ComfyUI-Data-Analysis.git
Remember the README's rename gotcha - clone to a folder literally called data-analysis or example workflows won't load - and that the pack needs pandas, matplotlib, seaborn, scipy, scikit-learn, openpyxl and lxml, none of which come with stock ComfyUI. Manager installs them; if you clone by hand, pip install -r requirements.txt. No GPU involved anywhere.
Troubleshooting
Type the hue column name wrong and you'll get the pack's standard ValueError: Column 'X' not found in the DataFrame. - it validates names against real columns, which beats a silent empty plot. And if your grid comes out enormous, that's not a bug, that's your DataFrame being too wide. Trim columns first.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| dataframe | DATAFRAME | — | |
| hue_column_name | STRING | — | |
| title | STRING | — | |
| style | STRING | — | |
| palette | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |