17 Feature Distribution
This method extends the univariate Feature Histogram method to visualize the distribution of two numerical features on a scatter plot. It helps reveal patterns such as correlations, clusters, trends, or outliers.

17.2 Log-scale Axes
Log X and Log Y toggles plot the respective axis on a base-10 logarithmic scale, and the axis is relabeled log₁₀(...). The base-10 logarithm is applied to the selected feature(s) before any modeling, so everything downstream is computed in log space: the 2D GMM (its component means and covariances, BIC-based model selection, 95% ellipses, and hard-assignment classification) and the regression line (its slope and \(R^2\)) are all fit on the log-transformed values. Negative values cannot be log-transformed, so a warning is shown if a selected feature contains any.
17.3 Marginal Distribution
Marginal distributions (the distribution of a single feature) are plotted at the top and the right of the scatter plot. Users can choose the plot type from the dropdown menu, which offers three options.

gaussian fit: provides a kernel-density estimate using Gaussian kernels. It usesgaussian_kdefromscipy.statsand sets all parameters to default values.boxplot: summarizes each color group with a box and whiskers, which makes the median and spread easier to compare across groups than overlapping density curves.violin: shows the full distribution shape for each color group, combining the density information of the Gaussian fit with the per-group separation of the boxplot.
17.4 2D Gaussian Mixture Model
Using the same method as fitting a 1D Gaussian Mixture Model, users can fit a 2D GMM by specifying Max Components and Min Weight Threshold for each color group.
Ellipses that capture approximately 95% of the points in each subcomponent are drawn. The color of the ellipses is determined by the color group that the subcomponent belongs to.
Each ellipse represents a subcomponent of the GMM.
Center of the ellipse is the mean of the subcomponent (\(\mu_x, \mu_y\)).
The ellipse is rotated by \(\theta = \arctan2\!\left(v_{1y}, v_{1x} \right)\), where \(\mathbf{v}_1 = \begin{bmatrix} v_{1x} \\ v_{1y} \end{bmatrix}\) is the first eigenvector of the covariance matrix, so that the major axis of the ellipse is aligned with the eigenvector corresponding to the largest eigenvalue.
The semi-axis lengths are \(r\sqrt{\lambda_1}\) and \(r\sqrt{\lambda_2}\), where \(\lambda_1\) and \(\lambda_2\) are the covariance eigenvalues (variances along the principal axes) scaled by \(r = \sqrt{\chi^2_{\,\mathrm{df}=2,\,p=0.95}}\) (Mahalanobis distance) that captures approximately 95% of the points in the subcomponent.
All the components below will be rendered for each color group, which is created by user-chosen categorical features in Color by.

Users can click on a legend group to hide/show the data points in that group. In the above example, to avoid cluttering the plot, the orange group is hidden.
Tables of subcomponents’ means, standard deviations, and weights are reported on the side.

The classification result can be saved by clicking:

The classification is done by hard assignment to determine which GMM component each data point belongs to. It appends a new categorical feature column called 2D_GMM_group to the filtered dataset, the values of which are {color_group}_group1, {color_group}_group2, etc. The downloaded dataset keeps all the features plus the new categorical feature column, which is recognized by any method in Data Analysis as a categorical feature like others. The rows that pass the filters are included.
17.5 Regression line
A linear regression line is fitted to the data points in each color group. The key statistics are reported on the side.

\(R^{2}\) tells how much of the variability in \(y\) is captured by the model, compared to just predicting the \(\bar{y}\).
- \(R^{2} = 1\) → perfect prediction.
- \(R^{2} = 0\) → model predicts no better than the mean.