seaborn | Statistical data visualization in Python | Data Visualization library

 by   mwaskom Python Version: 0.12.2 License: BSD-3-Clause

kandi X-RAY | seaborn Summary

kandi X-RAY | seaborn Summary

seaborn is a Python library typically used in Analytics, Data Visualization, Pandas applications. seaborn has no bugs, it has no vulnerabilities, it has a Permissive License and it has high support. However seaborn build file is not available. You can install using 'pip install seaborn' or download it from GitHub, PyPI.

Statistical data visualization in Python

            kandi-support Support

              seaborn has a highly active ecosystem.
              It has 10797 star(s) with 1725 fork(s). There are 256 watchers for this library.
              There were 2 major release(s) in the last 12 months.
              There are 118 open issues and 2203 have been closed. On average issues are closed in 14 days. There are 11 open pull requests and 0 closed requests.
              It has a positive sentiment in the developer community.
              The latest version of seaborn is 0.12.2

            kandi-Quality Quality

              seaborn has 0 bugs and 0 code smells.

            kandi-Security Security

              seaborn has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              seaborn code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              seaborn is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              seaborn releases are available to install and integrate.
              Deployable package is available in PyPI.
              seaborn has no build file. You will be need to create the build yourself to build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              seaborn saves you 13118 person hours of effort in developing the same functionality from scratch.
              It has 26955 lines of code, 1355 functions and 102 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed seaborn and discovered the below as its top functions. This is intended to give you an instant insight into seaborn implemented functionality, and help decide if they suit your requirements.
            • Plot a scatter plot
            • The legend
            • Draw a matplotlib figure
            • Add a legend
            • Combine the data into a single plot
            • Generate a joint -man plot
            • Inject kwargs into kwargs
            • Plot marginal properties for a function
            • Apply func to func
            • Plot a lmplot
            • Show a dark palette
            • Show a light palette
            • Plot the marginal properties of a function
            • Determine the colormap parameters
            • Generate a swarm plot
            • Choose the diverging palette
            • Call func on func
            • Extract the docstring from the file
            • Get the plot data
            • Combine the data into a new plot
            • Choose a cubehelix palette
            • Load an example dataset
            • Plot clusters of data
            • Move a legend
            • Plot the residual data
            • Set title and col_titles
            • Draw a logo
            • Chooses a colorbrewer palette
            Get all kandi verified functions for this library.

            seaborn Key Features

            No Key Features are available at this moment for seaborn.

            seaborn Examples and Code Snippets

            Load data from seaborn .
            pythondot img1Lines of Code : 21dot img1License : Permissive (MIT License)
            copy iconCopy
            def load_data(dataset_name: str, cola_name: str, colb_name: str) -> np.mat:
                Function used for loading data from the seaborn splitting into x and y points
                >>> pass # this function has no doctest
                import seaborn a  
            How to plot multiple time series from a CSV while the data points are in different columns
            Pythondot img2Lines of Code : 22dot img2License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            # out:
                 Data      Mean        sd   time__1   time__2   time__3   time__4  \
            0  Data_1  0.947667  0.025263  0.501517  0.874750  0.929426  0.953847   
            1  Data_2  0.031960  0.017314  0.377588  0.069185  0.037523  0.024028   
            How to create a seaborn violinplot of a feature that take more than one value?
            Pythondot img3Lines of Code : 14dot img3License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import pandas as pd
            import matplotlib.pyplot as plt
            import seaborn as sns
            genres = [['action', 'drama', 'comedy'], ['comedy', 'drama'], ['action', 'sci-fi', 'comedy']]
            rating = [6, 8, 3]
            data = {'Rating': rating, 'Genres': genres}
            df = p
            How to make combo charts inside subplots using a For loop in Python
            Pythondot img4Lines of Code : 10dot img4License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            filt_a= df_a.loc[df_a['Category'] == cat].reset_index()
            # The x-coordinates are not 2020, 2021, 2022.
            # They are 0, 1, 2. The *x-labels* are 2020, 2021, 2022
            sns.barplot(data=filt_q, x='Year', y='value', ...)
            # Th
            use different data for legend matplotlib
            Pythondot img5Lines of Code : 5dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import seaborn as sns
            sns.barplot(data=df, x='player', y='wins', hue='position', dodge=False,
                        palette=dict(zip(df['position'], df['color'])))
            pandas groupby().size(), to excel line graph
            Pythondot img6Lines of Code : 7dot img6License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import seaborn as sns
            df = (hap_groups
                  .assign(generation=lambda d: d['Generation'].str.extract('^(\d+)').astype(int))
            sns.lineplot(data=df, x='generation', y='count', hue='Line', marker='o')
            Creating a Scatter Plot with different colors for a certain column
            Pythondot img7Lines of Code : 2dot img7License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            cityScatter.plot(kind='scatter', x='longitude', y='latitude', c='country')
            ValueError: Found unknown categories [nan] in column 2 during fit
            Pythondot img8Lines of Code : 6dot img8License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            ['2' '3' '4' '5more' nan]
            `data = data.dropna()`
            seaborn joint plot, how to remove space between marginal axes
            Pythondot img9Lines of Code : 4dot img9License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            sns.jointplot(x='sepal_length', y='sepal_width', data=sns.load_dataset('iris'),
                          kind='kde', cmap='plasma', space=0)
            #                                        -------
            How to make a horizontal stacked histplot based on counts?
            Pythondot img10Lines of Code : 5dot img10License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
                data=melt, y='Time', hue='variable', weights='value',
                multiple='stack', shrink=0.8, discrete=True,

            Community Discussions


            Getting Error 0 when plotting boxplot of a filtered dataset
            Asked 2022-Mar-11 at 15:48

            I am working on the Kaggle: Abalone dataset and I am facing a weird problem when plotting a boxplot.



            Answered 2022-Mar-10 at 10:38

            If you want a box plot per value of a categorical column I suggest:



            Resize axes of top and right joint marginal plots to match central plot with matplotlib
            Asked 2022-Feb-15 at 01:17

            How do you size the axes of a marginal plot to match the size of a non-square central plot using matplotlib?

            In the image, you'll see that the top marginal plot is too wide, even though it shares the x-axis labels.

            Context: I'm trying to create a joint plot like in Seaborn, but with a non-square heatmap at center and bar graphs as the marginal plots. JointGrids isn't designed to work with heatmaps (which is okay, on to matplotlib!). Merging a matplotlib heatmap with subplot barplots gets me close, but I find one bargraph's axis is larger than the central heatmap even when I share axes.

            Minimum working example:



            Answered 2022-Feb-15 at 01:17

            As the heatmap gets a default "equal" aspect ratio, and gets shrunk due to the colorbar, an idea is to manually resize the histograms once everything is created.



            How to paste an Excel chart into PowerPoint placeholder using Python?
            Asked 2022-Feb-12 at 02:55

            I have an excel file with a series of formatted charts on a tab called Charts. I have named the charts, Figure1, Figure2, Figure3, etc.

            I have an existing PowerPoint template. The template has 2 placeholders per slide (so that it can accommodate 2 charts per slide).

            I would like to paste Figure1 in the left placeholder of slide 3, and Figure2 in the right placeholder of slide 3. I want to do this in python as the data analysis is done in python and excel is used to share stored results with colleagues.

            Attempt 1:

            Attempt 1 uses win32com.client. I am following this example: How to copy chart from excel and paste it as chart into powerpoint (not image) using python

            but I cannot get the syntax right to insert the chart into the placeholder. When I follow the syntax in the solution, nothing happens and I get a message


            Current code:



            Answered 2022-Feb-12 at 02:55

            You're very close! Copy and Paste are methods, so to call them you need to add brackets after them, e.g. Copy().

            To get slide 2, you need to use the Item method of the Slides class: ppt.Slides.Item(2)



            How to install local package with conda
            Asked 2022-Feb-05 at 04:16

            I have a local python project called jive that I would like to use in an another project. My current method of using jive in other projects is to activate the conda env for the project, then move to my jive directory and use python install. This works fine, and when I use conda list, I see everything installed in the env including jive, with a note that jive was installed using pip.

            But what I really want is to do this with full conda. When I want to use jive in another project, I want to just put jive in that projects environment.yml.

            So I did the following:

            1. write a simple meta.yaml so I could use conda-build to build jive locally
            2. build jive with conda build .
            3. I looked at the tarball that was produced and it does indeed contain the jive source as expected
            4. In my other project, add jive to the dependencies in environment.yml, and add 'local' to the list of channels.
            5. create a conda env using that environment.yml.

            When I activate the environment and use conda list, it lists all the dependencies including jive, as desired. But when I open python interpreter, I cannot import jive, it says there is no such package. (If use python install, I can import it.) How can I fix the build/install so that this works?

            Here is the meta.yaml, which lives in the jive project top level directory:



            Answered 2022-Feb-05 at 04:16

            The immediate error is that the build is generating a Python 3.10 version, but when testing Conda doesn't recognize any constraint on the Python version, and creates a Python 3.9 environment.

            I think the main issue is that python >=3.5 is only a valid constraint when doing noarch builds, which this is not. That is, once a package builds with a given Python version, the version must be constrained to exactly that version (up through minor). So, in this case, the package is built with Python 3.10, but it reports in its metadata that it is compatible with all versions of Python 3.5+, which simply isn't true because Conda Python packages install the modules into Python-version-specific site-packages (e.g., lib/python-3.10/site-packages/jive).

            Typically, Python versions are controlled by either the --python argument given to conda-build or a matrix supplied by the conda_build_config.yaml file (see documentation on "Build variants").

            Try adjusting the meta.yaml to something like



            How to add median and IQR to seaborn violinplot
            Asked 2022-Jan-14 at 18:59

            I want to add the median and IQ values to the violin plot. However, I didn't find its argument.



            Answered 2022-Jan-14 at 18:59

            If you look at the lines in ax you can see that they contain the coordinates of the quartile and median lines (see below)

            So we could just take the non-zero element from the first array in each line, and the first element of the second array to get the x and y, and use the y as the text value.



            Can't deploy streamlit app on
            Asked 2021-Dec-25 at 14:42

            I am working with a simple ML model with streamlit. It runs fine on my local machine inside conda environment, but it shows Error installing requirements when I try to deploy it on
            The error message is the following:



            Answered 2021-Dec-25 at 14:42

            Streamlit share runs the app in a linux environment meaning there is no pywin32 because this is for windows.

            Delete the pywin32 from the requirements file and also the pywinpty==1.1.6 for the same reason.

            After deleting these requirements re-deploy your app and it will work.



            Pandas agg define metric based on data type
            Asked 2021-Dec-16 at 12:34

            For pandas agg, is there a way to specify the aggregation function based on the data type? For example, all columns of type object get "first", all floats get "mean", and so on? So as to avoid having to type out all the columns with their respective aggregating functions.

            Sample data:



            Answered 2021-Dec-16 at 12:25
            def a(x):
                if x.dtype == np.dtype('float64'):
                    dict[] = "mean"
                elif x.dtype == np.dtype('object'):
                    dict[] = "first"
            dict = {}
            df = df.apply(a)



            Heatmap error :'NoneType' object is not callable when using with dataframe
            Asked 2021-Dec-05 at 09:37

            I have this issue with heatmap from seaborn. I don't know how, but seaborn.heatmap() refuses to take in dataframe, it instead show the mentioned error. Seaborn, matplotlib and pandas is up-to-date and I'm using python 3.10 on Visual Studio. The code is just a sample code from seaborn.heatmap itself:



            Answered 2021-Dec-05 at 09:37

            Use Python 3.9 (or 3.8, 3.7, 3.6) as it seems like both pandas and plt are not quite ready to be used with Python 3.10:



            Adding columns & values per group occurrence in pandas after filtering
            Asked 2021-Dec-03 at 09:52

            I have a df



            Answered 2021-Dec-03 at 09:52


            Matplotlib scatter plot marker type from dictionary
            Asked 2021-Dec-02 at 18:42

            Using Matplotlib to make a scatter plot (not Seaborn, Pandas, or other high-level interface), how can I use a dictionary to specify marker types?

            This example works with a color dictionary:



            Answered 2021-Dec-02 at 18:42

            Based on the comments by @BigBen, it looks like Matplotlib doesn't support multiple markers. @BigBen linked to a couple of example work-arounds, but I found the following works best for me because it allows me to explicitly relate a keyword to a marker style at the beginning of my code, regardless of what subset of df I am working with. (Real-life data has a dozen "name" values, and I am working with various and mixed subsets based on attributes in other columns.)


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install seaborn

            You can install using 'pip install seaborn' or download it from GitHub, PyPI.
            You can use seaborn like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • PyPI

            pip install seaborn

          • CLONE
          • HTTPS


          • CLI

            gh repo clone mwaskom/seaborn

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link