Statistical data visualization in Python
This report summarizes scanner evidence for mwaskom/seaborn, a Python project with 14,061 GitHub stars. SynthScan examined 55,773 lines of code across 166 source files, recording 745 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 16.0 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 619 finding(s).
Are imports declared and package/API names verified? 95 finding(s).
Are wrappers, guards, and repeated structures necessary? 530 finding(s).
Which changes need focused human review? 745 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 745 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/matrix.py | 534 | def _calculate_linkage_fastcluster(self): | CODE |
| LOW | seaborn/matrix.py | 919 | def color_list_to_matrix_and_cmap(colors, ind, axis=0): | CODE |
| LOW | seaborn/_base.py | 694 | def _assign_variables_wideform(self, data=None, **kwargs): | CODE |
| LOW | seaborn/categorical.py | 187 | def _palette_without_hue_backcompat(self, palette, hue_order): | CODE |
| LOW | seaborn/categorical.py | 3358 | def first_non_overlapping_candidate(self, candidates, neighbors): | CODE |
| LOW | seaborn/widgets.py | 47 | def choose_colorbrewer_palette(data_type, as_cmap=False): | CODE |
| LOW | seaborn/widgets.py | 295 | def choose_light_palette_husl(h=(0, 359), | CODE |
| LOW | seaborn/distributions.py | 298 | def _compute_univariate_density( | CODE |
| LOW | seaborn/distributions.py | 376 | def plot_univariate_histogram( | CODE |
| LOW | seaborn/utils.py | 673 | def locator_to_legend_entries(locator, limits, dtype): | CODE |
| LOW | seaborn/_statistics.py | 98 | def _define_support_univariate(self, x, weights): | CODE |
| LOW | seaborn/_statistics.py | 107 | def _define_support_bivariate(self, x1, x2, weights): | CODE |
| LOW | seaborn/_compat.py | 75 | def groupby_apply_include_groups(val): | CODE |
| LOW | seaborn/_core/subplots.py | 46 | def _check_dimension_uniqueness( | CODE |
| LOW | seaborn/_core/subplots.py | 78 | def _determine_grid_dimensions( | CODE |
| LOW | seaborn/_core/properties.py | 571 | def _standardize_color_sequence(self, colors: ArrayLike) -> ArrayLike: | CODE |
| LOW | seaborn/_core/scales.py | 91 | def set_default_locators_and_formatters(self, axis): | CODE |
| LOW | seaborn/_core/scales.py | 284 | def set_default_locators_and_formatters(self, axis): | CODE |
| LOW | seaborn/_core/scales.py | 1003 | def _make_identity_transforms() -> TransFuncs: | CODE |
| LOW | seaborn/_marks/area.py | 53 | def _standardize_coordinate_parameters(self, data, orient): | CODE |
| LOW | seaborn/_marks/area.py | 115 | def _standardize_coordinate_parameters(self, data, orient): | CODE |
| LOW | seaborn/_marks/area.py | 162 | def _standardize_coordinate_parameters(self, data, orient): | CODE |
| LOW | seaborn/_stats/density.py | 99 | def _check_var_list_or_boolean(self, param: str, grouping_vars: Any) -> None: | CODE |
| LOW | seaborn/external/appdirs.py | 132 | def _get_win_folder_from_registry(csidl_name): | STRING |
| LOW | seaborn/external/appdirs.py | 180 | def _get_win_folder_with_ctypes(csidl_name): | STRING |
| LOW | seaborn/external/docscrape.py | 110 | def read_to_next_unindented_line(self): | CODE |
| LOW | tests/test_palettes.py | 120 | def test_terrible_palette_name(self): | CODE |
| LOW | tests/test_palettes.py | 138 | def test_palette_is_list_of_tuples(self): | CODE |
| LOW | tests/test_palettes.py | 317 | def test_cubehelix_against_matplotlib(self): | CODE |
| LOW | tests/test_palettes.py | 413 | def test_preserved_palette_length(self): | CODE |
| LOW | tests/test_palettes.py | 426 | def test_colormap_display_patch(self): | CODE |
| LOW | tests/test_utils.py | 156 | def test_despine_specific_axes(self): | CODE |
| LOW | tests/test_utils.py | 186 | def test_despine_side_specific_offset(self): | CODE |
| LOW | tests/test_utils.py | 199 | def test_despine_with_offset_specific_axes(self): | CODE |
| LOW | tests/test_utils.py | 224 | def test_despine_trim_inverted(self): | CODE |
| LOW | tests/test_utils.py | 236 | def test_despine_trim_noticks(self): | CODE |
| LOW | tests/test_utils.py | 244 | def test_despine_trim_categorical(self): | CODE |
| LOW | tests/test_utils.py | 312 | def test_locator_to_legend_entries(): | CODE |
| LOW | tests/test_utils.py | 343 | def test_move_legend_matplotlib_objects(): | CODE |
| LOW | tests/test_utils.py | 392 | def test_move_legend_grid_object(long_df): | CODE |
| LOW | tests/test_utils.py | 420 | def test_move_legend_input_checks(): | CODE |
| LOW | tests/test_utils.py | 433 | def test_move_legend_with_labels(long_df): | CODE |
| LOW | tests/test_utils.py | 460 | def check_load_cached_dataset(name): | CODE |
| LOW⚡ | tests/test_utils.py | 490 | def test_load_dataset_string_error(): | CODE |
| LOW⚡ | tests/test_utils.py | 498 | def test_load_dataset_passed_data_error(): | CODE |
| LOW⚡ | tests/test_utils.py | 507 | def test_load_cached_datasets(): | CODE |
| LOW | tests/test_utils.py | 564 | def test_assign_default_kwargs(): | CODE |
| LOW | tests/test_statistics.py | 88 | def test_density_normalization(self, rng): | CODE |
| LOW | tests/test_statistics.py | 145 | def test_bivariate_normalization(self, rng): | CODE |
| LOW | tests/test_statistics.py | 158 | def test_bivariate_cumulative(self, rng): | CODE |
| LOW | tests/test_statistics.py | 192 | def test_bivariate_string_bins(self, x, y): | CODE |
| LOW | tests/test_statistics.py | 220 | def test_bivariate_array_bins(self, x, y): | CODE |
| LOW | tests/test_statistics.py | 291 | def test_odd_single_observation(self): | CODE |
| LOW | tests/test_statistics.py | 349 | def test_cumulative_probability(self, x): | CODE |
| LOW | tests/test_statistics.py | 355 | def test_cumulative_frequency(self, x): | CODE |
| LOW⚡ | tests/test_statistics.py | 374 | def test_bivariate_count_stat(self, x, y): | CODE |
| LOW⚡ | tests/test_statistics.py | 380 | def test_bivariate_density_stat(self, x, y): | CODE |
| LOW⚡ | tests/test_statistics.py | 387 | def test_bivariate_probability_stat(self, x, y): | CODE |
| LOW⚡ | tests/test_statistics.py | 393 | def test_bivariate_frequency_stat(self, x, y): | CODE |
| LOW⚡ | tests/test_statistics.py | 400 | def test_bivariate_cumulative_count(self, x, y): | CODE |
| 398 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | seaborn/matrix.py | 74 | if not mask.index.equals(data.index) \ | CODE |
| HIGH | seaborn/matrix.py | 75 | and mask.columns.equals(data.columns): | CODE |
| HIGH | seaborn/categorical.py | 364 | # somewhat undefined; because we don't add null category data to the plot in | COMMENT |
| HIGH | seaborn/categorical.py | 2827 | # Capture this here because scale_categorical is going to insert a (null) | STRING |
| HIGH | seaborn/axisgrid.py | 728 | # If this subset is null, move on | STRING |
| HIGH | seaborn/axisgrid.py | 800 | # If this subset is null, move on | STRING |
| HIGH | seaborn/_stats/base.py | 53 | names = ", ".join(f"{x!r}" for x in undefined) | CODE |
| HIGH⚡ | tests/test_axisgrid.py | 123 | npt.assert_array_equal(g._not_bottom_axes, null) | CODE |
| HIGH⚡ | tests/test_axisgrid.py | 125 | npt.assert_array_equal(g._not_left_axes, null) | CODE |
| HIGH⚡ | tests/test_axisgrid.py | 126 | npt.assert_array_equal(g._inner_axes, null) | CODE |
| HIGH⚡ | tests/test_axisgrid.py | 130 | npt.assert_array_equal(g._not_bottom_axes, null) | CODE |
| HIGH⚡ | tests/test_axisgrid.py | 133 | npt.assert_array_equal(g._inner_axes, null) | CODE |
| HIGH⚡ | tests/test_axisgrid.py | 139 | npt.assert_array_equal(g._not_left_axes, null) | CODE |
| HIGH⚡ | tests/test_axisgrid.py | 140 | npt.assert_array_equal(g._inner_axes, null) | CODE |
| HIGH | tests/test_axisgrid.py | 159 | npt.assert_array_equal(g._inner_axes, null) | CODE |
| HIGH | tests/test_categorical.py | 3121 | assert g2.data.equals(long_df[["a", "y", "c"]]) | CODE |
| HIGH⚡ | tests/_core/test_scales.py | 436 | assert_array_equal(s(y), [c2, c1, null, c1]) | CODE |
| HIGH⚡ | tests/_core/test_scales.py | 445 | assert_array_equal(s(z), [c1, null, c2]) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/matrix.py | 774 | CODE | |
| LOW | seaborn/_base.py | 1551 | CODE | |
| LOW | seaborn/_base.py | 1731 | CODE | |
| LOW | seaborn/_base.py | 204 | CODE | |
| LOW | seaborn/_base.py | 253 | CODE | |
| LOW | seaborn/_base.py | 380 | CODE | |
| LOW | seaborn/_base.py | 590 | CODE | |
| LOW | seaborn/_base.py | 694 | CODE | |
| LOW | seaborn/_base.py | 847 | CODE | |
| LOW | seaborn/_base.py | 964 | CODE | |
| LOW | seaborn/_base.py | 1008 | CODE | |
| LOW | seaborn/_base.py | 1023 | CODE | |
| LOW | seaborn/_base.py | 1271 | CODE | |
| LOW | seaborn/categorical.py | 2756 | CODE | |
| LOW | seaborn/categorical.py | 591 | CODE | |
| LOW | seaborn/categorical.py | 750 | CODE | |
| LOW | seaborn/categorical.py | 891 | CODE | |
| LOW | seaborn/regression.py | 154 | CODE | |
| LOW | seaborn/regression.py | 196 | CODE | |
| LOW | seaborn/rcmod.py | 146 | CODE | |
| LOW | seaborn/palettes.py | 122 | CODE | |
| LOW | seaborn/palettes.py | 799 | CODE | |
| LOW | seaborn/axisgrid.py | 2010 | CODE | |
| LOW | seaborn/axisgrid.py | 2184 | CODE | |
| LOW | seaborn/axisgrid.py | 371 | CODE | |
| LOW | seaborn/axisgrid.py | 944 | CODE | |
| LOW | seaborn/axisgrid.py | 1413 | CODE | |
| LOW | seaborn/axisgrid.py | 1437 | CODE | |
| LOW | seaborn/relational.py | 229 | CODE | |
| LOW | seaborn/widgets.py | 143 | CODE | |
| LOW | seaborn/widgets.py | 228 | CODE | |
| LOW | seaborn/distributions.py | 2095 | CODE | |
| LOW | seaborn/distributions.py | 2391 | CODE | |
| LOW | seaborn/distributions.py | 376 | CODE | |
| LOW | seaborn/distributions.py | 741 | CODE | |
| LOW | seaborn/utils.py | 69 | CODE | |
| LOW | seaborn/utils.py | 277 | CODE | |
| LOW | seaborn/utils.py | 379 | CODE | |
| LOW | seaborn/utils.py | 524 | CODE | |
| LOW | seaborn/utils.py | 783 | CODE | |
| LOW | seaborn/_statistics.py | 670 | CODE | |
| LOW | seaborn/_statistics.py | 276 | CODE | |
| LOW | seaborn/_statistics.py | 484 | CODE | |
| LOW | seaborn/_statistics.py | 619 | CODE | |
| LOW | seaborn/_testing.py | 24 | CODE | |
| LOW | seaborn/_core/subplots.py | 46 | CODE | |
| LOW | seaborn/_core/subplots.py | 121 | CODE | |
| LOW | seaborn/_core/subplots.py | 142 | CODE | |
| LOW | seaborn/_core/plot.py | 638 | CODE | |
| LOW | seaborn/_core/plot.py | 1105 | CODE | |
| LOW | seaborn/_core/plot.py | 1207 | CODE | |
| LOW | seaborn/_core/plot.py | 1303 | CODE | |
| LOW | seaborn/_core/plot.py | 1415 | CODE | |
| LOW | seaborn/_core/plot.py | 1520 | CODE | |
| LOW | seaborn/_core/plot.py | 1584 | CODE | |
| LOW | seaborn/_core/plot.py | 1660 | CODE | |
| LOW | seaborn/_core/plot.py | 1773 | CODE | |
| LOW | seaborn/_core/plot.py | 1598 | CODE | |
| LOW | seaborn/_core/properties.py | 171 | CODE | |
| LOW | seaborn/_core/properties.py | 244 | CODE | |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/_base.py | 1 | CODE | |
| LOW | seaborn/axisgrid.py | 1 | CODE | |
| LOW | seaborn/__init__.py | 2 | CODE | |
| LOW | seaborn/__init__.py | 3 | CODE | |
| LOW | seaborn/__init__.py | 4 | CODE | |
| LOW | seaborn/__init__.py | 5 | CODE | |
| LOW | seaborn/__init__.py | 6 | CODE | |
| LOW | seaborn/__init__.py | 7 | CODE | |
| LOW | seaborn/__init__.py | 8 | CODE | |
| LOW | seaborn/__init__.py | 9 | CODE | |
| LOW | seaborn/__init__.py | 10 | CODE | |
| LOW | seaborn/__init__.py | 11 | CODE | |
| LOW | seaborn/__init__.py | 12 | CODE | |
| LOW | seaborn/__init__.py | 13 | CODE | |
| LOW | seaborn/__init__.py | 13 | CODE | |
| LOW | seaborn/__init__.py | 14 | CODE | |
| LOW | seaborn/_compat.py | 1 | CODE | |
| LOW | seaborn/objects.py | 29 | CODE | |
| LOW | seaborn/objects.py | 31 | CODE | |
| LOW | seaborn/objects.py | 32 | CODE | |
| LOW | seaborn/objects.py | 32 | CODE | |
| LOW | seaborn/objects.py | 33 | CODE | |
| LOW | seaborn/objects.py | 33 | CODE | |
| LOW | seaborn/objects.py | 34 | CODE | |
| LOW | seaborn/objects.py | 34 | CODE | |
| LOW | seaborn/objects.py | 35 | CODE | |
| LOW | seaborn/objects.py | 35 | CODE | |
| LOW | seaborn/objects.py | 35 | CODE | |
| LOW | seaborn/objects.py | 35 | CODE | |
| LOW | seaborn/objects.py | 35 | CODE | |
| LOW | seaborn/objects.py | 35 | CODE | |
| LOW | seaborn/objects.py | 36 | CODE | |
| LOW | seaborn/objects.py | 38 | CODE | |
| LOW | seaborn/objects.py | 39 | CODE | |
| LOW | seaborn/objects.py | 39 | CODE | |
| LOW | seaborn/objects.py | 40 | CODE | |
| LOW | seaborn/objects.py | 40 | CODE | |
| LOW | seaborn/objects.py | 41 | CODE | |
| LOW | seaborn/objects.py | 42 | CODE | |
| LOW | seaborn/objects.py | 43 | CODE | |
| LOW | seaborn/objects.py | 45 | CODE | |
| LOW | seaborn/objects.py | 45 | CODE | |
| LOW | seaborn/objects.py | 45 | CODE | |
| LOW | seaborn/objects.py | 45 | CODE | |
| LOW | seaborn/objects.py | 45 | CODE | |
| LOW | seaborn/objects.py | 45 | CODE | |
| LOW | seaborn/objects.py | 47 | CODE | |
| LOW | seaborn/objects.py | 47 | CODE | |
| LOW | seaborn/objects.py | 47 | CODE | |
| LOW | seaborn/objects.py | 47 | CODE | |
| LOW | seaborn/objects.py | 47 | CODE | |
| LOW | seaborn/_core/subplots.py | 1 | CODE | |
| LOW | seaborn/_core/moves.py | 1 | CODE | |
| LOW | seaborn/_core/plot.py | 2 | CODE | |
| LOW | seaborn/_core/properties.py | 1 | CODE | |
| LOW | seaborn/_core/scales.py | 1 | CODE | |
| LOW | seaborn/_core/rules.py | 1 | CODE | |
| LOW | seaborn/_core/exceptions.py | 7 | CODE | |
| LOW | seaborn/_core/typing.py | 1 | CODE | |
| LOW | seaborn/_core/groupby.py | 2 | CODE | |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | seaborn/matrix.py | 445 | # Initialize the plotter object | COMMENT |
| MEDIUM | seaborn/_base.py | 824 | # Define the variable names | COMMENT |
| MEDIUM | seaborn/regression.py | 200 | # Create the grid for the regression | COMMENT |
| MEDIUM | seaborn/axisgrid.py | 1276 | # Create the figure and the array of subplots | COMMENT |
| MEDIUM | seaborn/axisgrid.py | 2242 | # Initialize the JointGrid object | STRING |
| MEDIUM | seaborn/__init__.py | 20 | # Define the seaborn version | COMMENT |
| MEDIUM | seaborn/relational.py | 255 | # Initialize the aggregation object | COMMENT |
| MEDIUM | seaborn/relational.py | 410 | # Define the vectors of x and y positions | COMMENT |
| MEDIUM | seaborn/relational.py | 787 | # Define the common plotting parameters | STRING |
| MEDIUM | seaborn/relational.py | 806 | # Define the named variables for plotting on each facet | STRING |
| MEDIUM | seaborn/distributions.py | 307 | # Initialize the estimator object | COMMENT |
| MEDIUM | seaborn/distributions.py | 557 | # Define the matplotlib attributes that depend on semantic mapping | COMMENT |
| MEDIUM | seaborn/distributions.py | 823 | # Define the specific kwargs for this artist | COMMENT |
| MEDIUM | seaborn/distributions.py | 1103 | # Define a grid of iso-proportion levels | COMMENT |
| MEDIUM | seaborn/distributions.py | 1124 | # Define the coloring of the contours | COMMENT |
| MEDIUM | seaborn/_statistics.py | 323 | # Define the bins for this variable | COMMENT |
| MEDIUM | seaborn/_core/data.py | 96 | # Create a new dataset with just the info passed here | COMMENT |
| MEDIUM | seaborn/external/version.py | 19 | # This file is dual licensed under the terms of the Apache License, Version | COMMENT |
| MEDIUM | examples/structured_heatmap.py | 21 | # Create a categorical palette to identify the networks | COMMENT |
| MEDIUM | examples/kde_ridgeplot.py | 13 | # Create the data | COMMENT |
| MEDIUM | examples/kde_ridgeplot.py | 21 | # Initialize the FacetGrid object | COMMENT |
| MEDIUM | examples/many_facets.py | 15 | # Create a dataset with many short random walks | COMMENT |
| MEDIUM | examples/palette_generation.py | 20 | # Create a cubehelix colormap to use with kdeplot | COMMENT |
| MEDIUM | examples/joint_histogram.py | 18 | # Create an inset legend for the histogram colorbar | COMMENT |
| MEDIUM | examples/faceted_lineplot.py | 13 | # Define the palette as a list to specify exact values | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | seaborn/matrix.py | 1068 | except (TypeError, IndexError): | CODE |
| HIGH | seaborn/matrix.py | 1073 | except (TypeError, IndexError): | CODE |
| HIGH | seaborn/_base.py | 1510 | except TypeError: | CODE |
| HIGH | seaborn/rcmod.py | 532 | except (ValueError, TypeError): | CODE |
| HIGH | seaborn/utils.py | 65 | except AttributeError: | CODE |
| HIGH | seaborn/_core/plot.py | 997 | except TypeError: | CODE |
| HIGH | seaborn/_core/plot.py | 1821 | except TypeError: | CODE |
| HIGH | seaborn/external/appdirs.py | 175 | except UnicodeError: | CODE |
| HIGH | seaborn/external/appdirs.py | 173 | except ImportError: | CODE |
| HIGH | seaborn/external/docscrape.py | 686 | except AttributeError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/matrix.py | 355 | CODE | |
| LOW | seaborn/matrix.py | 642 | CODE | |
| LOW | seaborn/matrix.py | 1146 | CODE | |
| LOW | seaborn/matrix.py | 698 | CODE | |
| LOW | seaborn/categorical.py | 1592 | CODE | |
| LOW | seaborn/categorical.py | 1717 | CODE | |
| LOW | seaborn/categorical.py | 1907 | CODE | |
| LOW | seaborn/categorical.py | 2077 | CODE | |
| LOW | seaborn/categorical.py | 2202 | CODE | |
| LOW | seaborn/categorical.py | 2331 | CODE | |
| LOW | seaborn/categorical.py | 2473 | CODE | |
| LOW | seaborn/categorical.py | 2622 | CODE | |
| LOW | seaborn/categorical.py | 2756 | CODE | |
| LOW | seaborn/regression.py | 580 | CODE | |
| LOW | seaborn/regression.py | 761 | CODE | |
| LOW | seaborn/regression.py | 864 | CODE | |
| LOW | seaborn/regression.py | 76 | CODE | |
| LOW | seaborn/palettes.py | 665 | CODE | |
| LOW | seaborn/axisgrid.py | 2010 | CODE | |
| LOW | seaborn/axisgrid.py | 2184 | CODE | |
| LOW | seaborn/axisgrid.py | 371 | CODE | |
| LOW | seaborn/axisgrid.py | 1191 | CODE | |
| LOW | seaborn/axisgrid.py | 1687 | CODE | |
| LOW | seaborn/relational.py | 471 | CODE | |
| LOW | seaborn/relational.py | 606 | CODE | |
| LOW | seaborn/relational.py | 700 | CODE | |
| LOW | seaborn/relational.py | 202 | CODE | |
| LOW | seaborn/widgets.py | 405 | CODE | |
| LOW | seaborn/distributions.py | 1359 | CODE | |
| LOW | seaborn/distributions.py | 1582 | CODE | |
| LOW | seaborn/distributions.py | 1862 | CODE | |
| LOW | seaborn/distributions.py | 1974 | CODE | |
| LOW | seaborn/distributions.py | 2095 | CODE | |
| LOW | seaborn/distributions.py | 2391 | CODE | |
| LOW | seaborn/utils.py | 277 | CODE | |
| LOW | seaborn/_core/moves.py | 150 | CODE | |
| LOW | seaborn/_core/groupby.py | 103 | CODE | |
| LOW | seaborn/_stats/aggregation.py | 52 | CODE | |
| LOW | seaborn/_stats/aggregation.py | 122 | CODE | |
| LOW | seaborn/_stats/counting.py | 45 | CODE | |
| LOW | seaborn/external/kde.py | 266 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/matrix.py | 28 | __all__ = ["heatmap", "clustermap"] | CODE |
| LOW | seaborn/categorical.py | 41 | __all__ = [ | CODE |
| LOW | seaborn/regression.py | 22 | __all__ = ["lmplot", "regplot", "residplot"] | CODE |
| LOW | seaborn/miscplot.py | 6 | __all__ = ["palplot", "dogplot"] | CODE |
| LOW | seaborn/rcmod.py | 8 | __all__ = ["set_theme", "set", "reset_defaults", "reset_orig", | CODE |
| LOW | seaborn/palettes.py | 14 | __all__ = ["color_palette", "hls_palette", "husl_palette", "mpl_palette", | CODE |
| LOW | seaborn/axisgrid.py | 29 | __all__ = ["FacetGrid", "PairGrid", "JointGrid", "pairplot", "jointplot"] | CODE |
| LOW | seaborn/relational.py | 26 | __all__ = ["relplot", "scatterplot", "lineplot"] | CODE |
| LOW | seaborn/widgets.py | 17 | __all__ = ["choose_colorbrewer_palette", "choose_cubehelix_palette", | CODE |
| LOW | seaborn/distributions.py | 45 | __all__ = ["displot", "histplot", "kdeplot", "ecdfplot", "rugplot", "distplot"] | CODE |
| LOW | seaborn/utils.py | 21 | __all__ = ["desaturate", "saturate", "set_hls_values", "move_legend", | CODE |
| LOW | seaborn/_core/plot.py | 1105 | def _setup_figure(self, p: Plot, common: PlotData, layers: list[Layer]) -> None: | CODE |
| LOW | seaborn/external/version.py | 29 | __all__ = ["Version", "InvalidVersion", "VERSION_PATTERN"] | CODE |
| LOW | seaborn/external/kde.py | 78 | __all__ = ['gaussian_kde'] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | seaborn/external/kde.py | 53 | # ------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | seaborn/external/kde.py | 70 | # ------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_categorical.py | 226 | # ------------------------------------------------------------------------------ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/_base.py | 968 | # Most of these tests should just use the external interface | COMMENT |
| MEDIUM | seaborn/categorical.py | 3267 | # Sort along the value axis to facilitate the beeswarm | COMMENT |
| MEDIUM | seaborn/axisgrid.py | 2238 | # Matplotlib's hexbin plot is not na-robust | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/_base.py | 1361 | COMMENT | |
| LOW | seaborn/_base.py | 1401 | # It feels more consistent, but technically will be a default change | COMMENT |
| LOW | seaborn/categorical.py | 141 | """ | COMMENT |
| LOW | seaborn/_core/scales.py | 261 | if new._tick_params is None: | COMMENT |
| LOW | seaborn/external/docscrape.py | 261 | return params | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/_core/plot.py | 1375 | except Exception as err: | CODE |
| LOW | seaborn/_core/plot.py | 1405 | except Exception as err: | CODE |
| LOW | seaborn/_core/data.py | 275 | except Exception as err: | CODE |
| LOW | seaborn/_marks/base.py | 181 | except Exception as err: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seaborn/categorical.py | 684 | # Set width to 0 to avoid going out of domain | COMMENT |
| LOW | seaborn/axisgrid.py | 725 | # Iterate over the data subsets | STRING |
| LOW | seaborn/axisgrid.py | 797 | # Iterate over the data subsets | STRING |