From 27dcfba508722dc35a96544e259cd49c9e3a7f9a Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 18:03:35 +0530 Subject: [PATCH 01/14] Update index.md --- contrib/plotting-visualization/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/plotting-visualization/index.md b/contrib/plotting-visualization/index.md index 32261d6..3f27246 100644 --- a/contrib/plotting-visualization/index.md +++ b/contrib/plotting-visualization/index.md @@ -3,3 +3,4 @@ - [Installing Matplotlib](matplotlib-installation.md) - [Bar Plots in Matplotlib](matplotlib-bar-plots.md) - [Pie Charts in Matplotlib](matplotlib-pie-charts.md) +- [Introduction to Seaborn and Installation](seaborn-intro.md) From 273515a8c22a17fc9af4eefcab30f42d6065a31c Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 18:04:45 +0530 Subject: [PATCH 02/14] Create seaborn-intro.md --- contrib/plotting-visualization/seaborn-intro.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 contrib/plotting-visualization/seaborn-intro.md diff --git a/contrib/plotting-visualization/seaborn-intro.md b/contrib/plotting-visualization/seaborn-intro.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/contrib/plotting-visualization/seaborn-intro.md @@ -0,0 +1 @@ + From 01552110695fc0d9b39797d983946483d2620a3c Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 18:12:32 +0530 Subject: [PATCH 03/14] Update seaborn-intro.md --- contrib/plotting-visualization/seaborn-intro.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/plotting-visualization/seaborn-intro.md b/contrib/plotting-visualization/seaborn-intro.md index 8b13789..4e28b6a 100644 --- a/contrib/plotting-visualization/seaborn-intro.md +++ b/contrib/plotting-visualization/seaborn-intro.md @@ -1 +1,4 @@ +Seaborn is a Python data visualization library based on Matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics. +# Seaborn Installation +Before installing Matplotlib, ensure you have Python installed on your system. You can download and install Python from the [official Python website](https://www.python.org/). From b81223f8e8e19c67078d835d7679e66036356fb4 Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 18:12:50 +0530 Subject: [PATCH 04/14] Update seaborn-intro.md --- contrib/plotting-visualization/seaborn-intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/plotting-visualization/seaborn-intro.md b/contrib/plotting-visualization/seaborn-intro.md index 4e28b6a..8b0d869 100644 --- a/contrib/plotting-visualization/seaborn-intro.md +++ b/contrib/plotting-visualization/seaborn-intro.md @@ -1,4 +1,4 @@ Seaborn is a Python data visualization library based on Matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics. -# Seaborn Installation +## Seaborn Installation Before installing Matplotlib, ensure you have Python installed on your system. You can download and install Python from the [official Python website](https://www.python.org/). From 32fcb9484e26f9ae38e5d6b82a338190b8e83358 Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 18:15:06 +0530 Subject: [PATCH 05/14] Update seaborn-intro.md --- contrib/plotting-visualization/seaborn-intro.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/contrib/plotting-visualization/seaborn-intro.md b/contrib/plotting-visualization/seaborn-intro.md index 8b0d869..bbbfec8 100644 --- a/contrib/plotting-visualization/seaborn-intro.md +++ b/contrib/plotting-visualization/seaborn-intro.md @@ -2,3 +2,10 @@ Seaborn is a Python data visualization library based on Matplotlib. It provides ## Seaborn Installation Before installing Matplotlib, ensure you have Python installed on your system. You can download and install Python from the [official Python website](https://www.python.org/). +Below are the steps to install and setup seaborn + +1. **Install Seaborn**: Open your terminal or command prompt and run the following command to install Seaborn using `pip`: + +```bash +pip install seaborn +``` From 56467e57bb3ac0b91bde6d504813e44e983a80ab Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 18:19:06 +0530 Subject: [PATCH 06/14] Update seaborn-intro.md --- .../plotting-visualization/seaborn-intro.md | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/contrib/plotting-visualization/seaborn-intro.md b/contrib/plotting-visualization/seaborn-intro.md index bbbfec8..0375db2 100644 --- a/contrib/plotting-visualization/seaborn-intro.md +++ b/contrib/plotting-visualization/seaborn-intro.md @@ -2,10 +2,26 @@ Seaborn is a Python data visualization library based on Matplotlib. It provides ## Seaborn Installation Before installing Matplotlib, ensure you have Python installed on your system. You can download and install Python from the [official Python website](https://www.python.org/). -Below are the steps to install and setup seaborn -1. **Install Seaborn**: Open your terminal or command prompt and run the following command to install Seaborn using `pip`: +Below are the steps to install and setup Seaborn: + +1. Open your terminal or command prompt and run the following command to install Seaborn using `pip`: ```bash pip install seaborn ``` + +2. The basic invocation of `pip` will install seaborn and, if necessary, its mandatory dependencies. It is possible to include optional dependencies that give access to a few advanced features: +```bash +pip install seaborn[stats] +``` + +3. The library is also included as part of the Anaconda distribution, and it can be installed with `conda`: +```bash +conda install seaborn +``` + +4. As the main Anaconda repository can be slow to add new releases, you may prefer using the conda-forge channel: +```bash +conda install seaborn -c conda-forge +``` From bdab7d9bb5154dc23e2b9b350900a5b148b6d3e1 Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 18:29:50 +0530 Subject: [PATCH 07/14] Update seaborn-intro.md --- contrib/plotting-visualization/seaborn-intro.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/contrib/plotting-visualization/seaborn-intro.md b/contrib/plotting-visualization/seaborn-intro.md index 0375db2..6e0a7d8 100644 --- a/contrib/plotting-visualization/seaborn-intro.md +++ b/contrib/plotting-visualization/seaborn-intro.md @@ -25,3 +25,17 @@ conda install seaborn ```bash conda install seaborn -c conda-forge ``` + +## Dependencies +### Supported Python versions +- Python 3.8+ + +### Mandatory Dependencies + - [numpy](https://numpy.org/) + - [pandas](https://pandas.pydata.org/) + - [matplotlib](https://matplotlib.org/) + +### Optional Dependencies + - [statsmodels](https://www.statsmodels.org/stable/index.html) for advanced regression plots + - [scipy](https://scipy.org/) for clustering matrices and some advanced options + - [fastcluster](https://pypi.org/project/fastcluster/) for faster clustering of large matrices From a8e60cf4b1121311363846e4ca06d0967e4652fb Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 20:29:42 +0530 Subject: [PATCH 08/14] Update index.md --- contrib/plotting-visualization/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/plotting-visualization/index.md b/contrib/plotting-visualization/index.md index 3f27246..96615db 100644 --- a/contrib/plotting-visualization/index.md +++ b/contrib/plotting-visualization/index.md @@ -4,3 +4,4 @@ - [Bar Plots in Matplotlib](matplotlib-bar-plots.md) - [Pie Charts in Matplotlib](matplotlib-pie-charts.md) - [Introduction to Seaborn and Installation](seaborn-intro.md) +- [Getting started with Seaborn](seaborn-basics.md) From 4446a85d1f81f8a18d75f5a29cc9a1733bd800ab Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 20:30:11 +0530 Subject: [PATCH 09/14] Create seaborn-basics.md --- contrib/plotting-visualization/seaborn-basics.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 contrib/plotting-visualization/seaborn-basics.md diff --git a/contrib/plotting-visualization/seaborn-basics.md b/contrib/plotting-visualization/seaborn-basics.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/contrib/plotting-visualization/seaborn-basics.md @@ -0,0 +1 @@ + From 6aecf49fd04b8777365b7173fa47d59c86e5e0aa Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 20:47:43 +0530 Subject: [PATCH 10/14] Update seaborn-basics.md --- .../plotting-visualization/seaborn-basics.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/contrib/plotting-visualization/seaborn-basics.md b/contrib/plotting-visualization/seaborn-basics.md index 8b13789..603f074 100644 --- a/contrib/plotting-visualization/seaborn-basics.md +++ b/contrib/plotting-visualization/seaborn-basics.md @@ -1 +1,19 @@ +Seaborn helps you explore and understand your data. Its plotting functions operate on dataframes and arrays containing whole datasets and internally perform the necessary semantic mapping and statistical aggregation to produce informative plots. Its dataset-oriented, declarative API lets you focus on what the different elements of your plots mean, rather than on the details of how to draw them. +Here’s an example of what seaborn can do: +```Python +# Import seaborn +import seaborn as sns + +# Apply the default theme +sns.set_theme() + +# Load an example dataset +tips = sns.load_dataset("tips") + +# Create a visualization +sns.relplot( + data=tips, + x="total_bill", y="tip", col="time", + hue="smoker", style="smoker", size="size", +) From 03920cd7501a05316e9a143f0dc7d0406e6117c1 Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 20:48:58 +0530 Subject: [PATCH 11/14] Add files via upload --- .../images/seaborn-basics1.png | Bin 0 -> 53821 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/plotting-visualization/images/seaborn-basics1.png diff --git a/contrib/plotting-visualization/images/seaborn-basics1.png b/contrib/plotting-visualization/images/seaborn-basics1.png new file mode 100644 index 0000000000000000000000000000000000000000..bedcee91b8855491cbc3c50ac7af23bf330dca99 GIT binary patch literal 53821 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 z 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 Ss(20qenEt#g-Qi6$ literal 0 HcmV?d00001 From 5ffcbf21346cc0a56b873c5b11d97e349fa379fc Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 20:57:53 +0530 Subject: [PATCH 12/14] Update seaborn-basics.md --- .../plotting-visualization/seaborn-basics.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/contrib/plotting-visualization/seaborn-basics.md b/contrib/plotting-visualization/seaborn-basics.md index 603f074..41d76a4 100644 --- a/contrib/plotting-visualization/seaborn-basics.md +++ b/contrib/plotting-visualization/seaborn-basics.md @@ -17,3 +17,23 @@ sns.relplot( x="total_bill", y="tip", col="time", hue="smoker", style="smoker", size="size", ) +``` +Below is the output for the above code snippet: + +![Seaborn intro image](images/seaborn-basics.png) + +```Python +# Load an example dataset +tips = sns.load_dataset("tips") +``` +Most code in the docs will use the `load_dataset()` function to get quick access to an example dataset. There’s nothing special about these datasets: they are just pandas data frames, and we could have loaded them with `pandas.read_csv()` or build them by hand. Most of the examples in the documentation will specify data using pandas data frames, but Seaborn is very flexible about the data structures that it accepts. + +```Python +# Create a visualization +sns.relplot( + data=tips, + x="total_bill", y="tip", col="time", + hue="smoker", style="smoker", size="size", +) +``` +This plot shows the relationship between five variables in the tips dataset using a single call to the seaborn function `relplot()`. Notice how we provided only the names of the variables and their roles in the plot. Unlike when using matplotlib directly, it wasn’t necessary to specify attributes of the plot elements in terms of the color values or marker codes. Behind the scenes, seaborn handled the translation from values in the dataframe to arguments that Matplotlib understands. This declarative approach lets you stay focused on the questions that you want to answer, rather than on the details of how to control matplotlib. From 4a7e00b61aa225b133fc702d23d70b3a74b70adf Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 20:58:54 +0530 Subject: [PATCH 13/14] Update seaborn-basics.md --- contrib/plotting-visualization/seaborn-basics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/plotting-visualization/seaborn-basics.md b/contrib/plotting-visualization/seaborn-basics.md index 41d76a4..147083b 100644 --- a/contrib/plotting-visualization/seaborn-basics.md +++ b/contrib/plotting-visualization/seaborn-basics.md @@ -20,7 +20,7 @@ sns.relplot( ``` Below is the output for the above code snippet: -![Seaborn intro image](images/seaborn-basics.png) +![Seaborn intro image](images/seaborn-basics1.png) ```Python # Load an example dataset From ccaa3770e7b308fe25410124dedcdea772ebe504 Mon Sep 17 00:00:00 2001 From: Rishi Goswami <92781956+rishig2003@users.noreply.github.com> Date: Fri, 31 May 2024 21:04:10 +0530 Subject: [PATCH 14/14] Update seaborn-basics.md --- contrib/plotting-visualization/seaborn-basics.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/plotting-visualization/seaborn-basics.md b/contrib/plotting-visualization/seaborn-basics.md index 147083b..42df552 100644 --- a/contrib/plotting-visualization/seaborn-basics.md +++ b/contrib/plotting-visualization/seaborn-basics.md @@ -26,7 +26,7 @@ Below is the output for the above code snippet: # Load an example dataset tips = sns.load_dataset("tips") ``` -Most code in the docs will use the `load_dataset()` function to get quick access to an example dataset. There’s nothing special about these datasets: they are just pandas data frames, and we could have loaded them with `pandas.read_csv()` or build them by hand. Most of the examples in the documentation will specify data using pandas data frames, but Seaborn is very flexible about the data structures that it accepts. +Most code in the docs will use the `load_dataset()` function to get quick access to an example dataset. There’s nothing special about these datasets: they are just pandas data frames, and we could have loaded them with `pandas.read_csv()` or build them by hand. Many users specify data using pandas data frames, but Seaborn is very flexible about the data structures that it accepts. ```Python # Create a visualization @@ -36,4 +36,4 @@ sns.relplot( hue="smoker", style="smoker", size="size", ) ``` -This plot shows the relationship between five variables in the tips dataset using a single call to the seaborn function `relplot()`. Notice how we provided only the names of the variables and their roles in the plot. Unlike when using matplotlib directly, it wasn’t necessary to specify attributes of the plot elements in terms of the color values or marker codes. Behind the scenes, seaborn handled the translation from values in the dataframe to arguments that Matplotlib understands. This declarative approach lets you stay focused on the questions that you want to answer, rather than on the details of how to control matplotlib. +This plot shows the relationship between five variables in the tips dataset using a single call to the seaborn function `relplot()`. Notice how only the names of the variables and their roles in the plot are provided. Unlike when using matplotlib directly, it wasn’t necessary to specify attributes of the plot elements in terms of the color values or marker codes. Behind the scenes, seaborn handled the translation from values in the dataframe to arguments that Matplotlib understands. This declarative approach lets you stay focused on the questions that you want to answer, rather than on the details of how to control matplotlib.