{"id":7238,"date":"2019-01-06T13:41:35","date_gmt":"2019-01-06T13:41:35","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw92\/?p=7238"},"modified":"2019-01-08T12:18:32","modified_gmt":"2019-01-08T12:18:32","slug":"python-matplotlib-tutorial-linux-hint","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/01\/06\/python-matplotlib-tutorial-linux-hint\/","title":{"rendered":"Python Matplotlib Tutorial \u2013 Linux Hint"},"content":{"rendered":"<header class=\"entry-header\">\n<h1 class=\"entry-title\">Python Matplotlib Tutorial<\/h1>\n<\/header>\n<div class=\"vce-ad vce-ad-container\">\n<div id=\"ezoic-pub-ad-placeholder-107\"><\/div>\n<\/div>\n<div class=\"entry-content\">\n<div id=\"wpbody\">In this lesson on Python\u00a0<a href=\"https:\/\/matplotlib.org\/\">Matplotlib<\/a>\u00a0library, we will look at various aspects of this data visualisation library which we can use with Python to generate beautiful and intuitive graphs which can visualise data in a form which business wants from a platform. To make this lesson complete, we will cover the following sections:<\/p>\n<div class=\"hw9VEtEE\">\n<div id=\"ezoic-pub-ad-placeholder-115\"><\/div>\n<\/div>\n<ul>\n<li>What is Python Matplotlib?<\/li>\n<li>Types of Plots we can construct, like Bar Graph, Histogram, Scatter Plot, Area Plot and Pe Chart<\/li>\n<li>Working with Multiple plots<\/li>\n<li>Some alternatives for Python Matplotlib<\/li>\n<\/ul>\n<h3><strong>What is Python Matplotlib?<\/strong><\/h3>\n<p>The matplotlib.pyplot is a graph plotting package which can be used to construct 2-dimensional graphics using\u00a0<a href=\"https:\/\/linuxhint.com\/category\/python\/\">Python programming language<\/a>. Due to its pluggable nature, this package can be used in any GUI applications, Web application servers or simple Python scripts. Some toolkits which extend the functionality of Python Matplotlib are:<\/p>\n<div class=\"kiqtXz8U\">\n<div id=\"ezoic-pub-ad-placeholder-116\"><\/div>\n<\/div>\n<ul>\n<li><strong>Basemap<\/strong>\u00a0is a map plotting library that provides features to create map projects, coastlines and political boundaries<\/li>\n<li><strong>Natgrid<\/strong>\u00a0can be used to grid irregular data into spaced data<\/li>\n<li><strong>Excel tools<\/strong>\u00a0can be used to exchange data between MS Excel and Matplotlib<\/li>\n<li><strong>Cartopy<\/strong>\u00a0is a much complex mapping library which even provides image transformation features apart from point, line &amp; polygon projections<\/li>\n<\/ul>\n<p>Just a note before starting is that we use a virtual environment for this lesson which we made with the following command:<\/p>\n<div class=\"3NfUC0if\">\n<div id=\"ezoic-pub-ad-placeholder-117\"><\/div>\n<\/div>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">python -m virtualenv matplotlib<br \/>\nsource matplotlib\/bin\/activate<\/div>\n<\/div>\n<p>Once the virtual environment is active, we can install matplotlib library within the virtual env so that examples we create next can be executed:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">pip install matplotlib<\/div>\n<\/div>\n<p>We see something like this when we execute the above command:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34860\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/1-9.png\" sizes=\"auto, (max-width: 2034px) 100vw, 2034px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/1-9.png 1140w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/1-9-300x66.png 300w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/1-9-768x170.png 768w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/1-9-1024x227.png 1024w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/1-9-810x179.png 810w\" alt=\"\" width=\"2034\" height=\"450\" \/><\/p>\n<p>You can use Anaconda as well to run these examples which is easier. If you want to install it on your machine, look at the lesson which describes \u201c<a href=\"https:\/\/linuxhint.com\/install_anaconda_python_ubuntu_1804\/\">How to Install Anaconda Python on Ubuntu 18.04 LTS<\/a>\u201d and share your feedback. Now, let us move forward to various types of plots which can be constructed with Python Matplotlib.<\/p>\n<h3><strong>Types of Plots<\/strong><\/h3>\n<p>Here, we demonstrate the types of plots which can be drawn with Python Matplotlib.<\/p>\n<h3><strong>Simple Graph<\/strong><\/h3>\n<p>The first example we will see will be of a simple graph plot. This example is used as a demonstration of how simple it is to construct a graph plot along with simple customisations that come with it. We start by importing matplotlib and defining the x and y coordinates we want to plot:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\"><span class=\"kw1\">from<\/span>\u00a0matplotlib\u00a0<span class=\"kw1\">import<\/span>\u00a0pyplot\u00a0<span class=\"kw1\">as<\/span>\u00a0plt<br \/>\nx\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">3<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">6<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">9<\/span><span class=\"br0\">]<\/span><br \/>\ny\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">6<\/span><span class=\"br0\">]<\/span><\/div>\n<\/div>\n<p>After this, we can plot these coordinates on the graph and show it:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">plt.<span class=\"me1\">plot<\/span><span class=\"br0\">(<\/span>x<span class=\"sy0\">,<\/span>\u00a0y<span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">show<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><\/div>\n<\/div>\n<p>When we run this, we will see the following graph:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34861\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/2-9.png\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/2-9.png 790w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/2-9-292x300.png 292w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/2-9-768x789.png 768w\" alt=\"\" width=\"790\" height=\"812\" \/><br \/>\nWith just few lines of code, we were able to plot a graph. Let us add a few customisations to make this graph a little more expressive:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">plt.<span class=\"me1\">title<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;LH Plot&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">ylabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Y axis&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">xlabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;X axis&#8217;<\/span><span class=\"br0\">)<\/span><\/div>\n<\/div>\n<p>Add above lines of code just before you show the plot and graph will now have labels:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34862\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/3-9.png\" sizes=\"auto, (max-width: 814px) 100vw, 814px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/3-9.png 814w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/3-9-300x212.png 300w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/3-9-768x543.png 768w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/3-9-810x573.png 810w\" alt=\"\" width=\"814\" height=\"576\" \/><\/p>\n<p>We will give one more attempt in customising this graph to make it intuitive with the following lines of code before we show the plot:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">x1\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">3<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">6<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">9<\/span><span class=\"br0\">]<\/span><br \/>\ny1\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">6<\/span><span class=\"br0\">]<\/span><\/p>\n<p>x2\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">7<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">9<\/span><span class=\"br0\">]<\/span><br \/>\ny2\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">5<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">8<\/span><span class=\"br0\">]<\/span><\/p>\n<p>plt.<span class=\"me1\">title<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Info&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">ylabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Y axis&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">xlabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;X axis&#8217;<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">plot<\/span><span class=\"br0\">(<\/span>x1\u00a0<span class=\"sy0\">,<\/span>y1\u00a0<span class=\"sy0\">,<\/span>\u00a0<span class=\"st0\">&#8216;g&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;Quarter 1&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0linewidth<span class=\"sy0\">=<\/span><span class=\"nu0\">5<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">plot<\/span><span class=\"br0\">(<\/span>x2<span class=\"sy0\">,<\/span>\u00a0y2<span class=\"sy0\">,<\/span>\u00a0<span class=\"st0\">&#8216;r&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;Quarter 2&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0linewidth<span class=\"sy0\">=<\/span><span class=\"nu0\">5<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">legend<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">grid<\/span><span class=\"br0\">(<\/span><span class=\"kw2\">True<\/span><span class=\"sy0\">,<\/span>color<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;k&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">show<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><\/div>\n<\/div>\n<p>We will see the following plot when we run the above code snippet:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34863\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/4-10.png\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/4-10.png 380w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/4-10-300x219.png 300w\" alt=\"\" width=\"380\" height=\"278\" \/><\/p>\n<p>Notice what we started with and what we ended up with, a very intuitive and attractive graph which you can use in your presentations and it is made with pure Python code, definitely something to be proud of !<\/p>\n<h3><strong>Making a Bar Graph<\/strong><\/h3>\n<p>A bar graph is specifically useful when we want to platform a comparison with specific and limited measures. For example, comparing the average marks of students with a single subject is a good use-case. Let us construct a bar graph for the same use-case here, the code snippet for this will be:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">avg_marks\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">81<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">92<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">55<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">79<\/span><span class=\"br0\">]<\/span><br \/>\nphysics\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">68<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">77<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">62<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">74<\/span><span class=\"br0\">]<\/span><\/p>\n<p>plt.<span class=\"me1\">bar<\/span><span class=\"br0\">(<\/span><span class=\"br0\">[<\/span><span class=\"nu0\">0.25<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">1.25<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">2.25<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">3.25<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span>\u00a0avg_marks<span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8220;Average&#8221;<\/span><span class=\"sy0\">,<\/span>\u00a0width<span class=\"sy0\">=<\/span><span class=\"nu0\">.5<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">bar<\/span><span class=\"br0\">(<\/span><span class=\"br0\">[<\/span><span class=\"nu0\">.75<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">1.75<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">2.75<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">3.75<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span>\u00a0physics<span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8220;Physics&#8221;<\/span><span class=\"sy0\">,<\/span>\u00a0color<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;r&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0width<span class=\"sy0\">=<\/span><span class=\"nu0\">.5<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">legend<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">xlabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Range&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">ylabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Marks&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">title<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Comparison&#8217;<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">show<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><\/div>\n<\/div>\n<p>The bar graph created with the above sample data will look like the following:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34864\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/5-10.png\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/5-10.png 386w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/5-10-300x216.png 300w\" alt=\"\" width=\"386\" height=\"278\" \/><\/p>\n<p>There are multiple bars present here to establish a comparison. Please note that we have provided the width of each bar as a first parameters and bar is shifted 0.5 values from the previous one.<\/p>\n<p>We can combine this bar graph construction with Pandas library to customise this more but we will cover it in a different lesson on Pandas.<\/p>\n<h3><strong>Distributions with Histograms<\/strong><\/h3>\n<p>Histograms are often confused with Bar charts. The most basic difference lies in their use-case. Bar charts are used to establish comparisons between data whereas histograms are used to describe data distribution.<\/p>\n<p>For example, let us apply the example for student marks again but this time, we will only look at the average marks of students and look at how are they distributed. Here is the code snippet, very similar to the previous example:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">bins\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">10<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">20<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">30<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">40<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">50<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">60<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">70<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">80<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">90<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">]<\/span><br \/>\navg_marks\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">81<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">77<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">55<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">88<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">81<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">66<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">51<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">66<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">81<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">92<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">55<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">51<\/span><span class=\"br0\">]<\/span><\/p>\n<p>plt.<span class=\"me1\">hist<\/span><span class=\"br0\">(<\/span>avg_marks<span class=\"sy0\">,<\/span>\u00a0bins<span class=\"sy0\">,<\/span>\u00a0histtype<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;bar&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0rwidth<span class=\"sy0\">=<\/span><span class=\"nu0\">0.8<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">xlabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Range&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">ylabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Marks&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">title<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Comparison&#8217;<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">show<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><\/div>\n<\/div>\n<p>The histogram created with above sample data will look like the following:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34865\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/6-9.png\" sizes=\"auto, (max-width: 389px) 100vw, 389px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/6-9.png 389w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/6-9-300x214.png 300w\" alt=\"\" width=\"389\" height=\"278\" \/><\/p>\n<p>The Y-axis show here that how many students have got the same marks which were provided as the data for the construction.<\/p>\n<h3><strong>Making a Scatter Plot<\/strong><\/h3>\n<p>When it comes to comparing multiple variables and establish their effect on each other, Scatter plot is a good way to present the same. In this, data is represented as points with value of one variable reflected by horizontal axis and the value of second variable determines the position of the point on the vertical axis.<\/p>\n<p>Let us look at a simple code snippet to describe the same:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">x\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">1.5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">2.5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">3<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">3.5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">3.6<\/span><span class=\"br0\">]<\/span><br \/>\ny\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">75<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">85<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">9<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">95<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">10<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">75<\/span><span class=\"br0\">]<\/span><\/p>\n<p>x1<span class=\"sy0\">=<\/span><span class=\"br0\">[<\/span><span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">8.5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">9<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">9.5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">10<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">10.5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">11<\/span><span class=\"br0\">]<\/span><br \/>\ny1<span class=\"sy0\">=<\/span><span class=\"br0\">[<\/span><span class=\"nu0\">3<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">35<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">3.7<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">45<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">52<\/span><span class=\"br0\">]<\/span><\/p>\n<p>plt.<span class=\"me1\">scatter<\/span><span class=\"br0\">(<\/span>x<span class=\"sy0\">,<\/span>y<span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8217;10 High scoring students&#8217;<\/span><span class=\"sy0\">,<\/span>color<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;r&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">scatter<\/span><span class=\"br0\">(<\/span>x1<span class=\"sy0\">,<\/span>y1<span class=\"sy0\">,<\/span>label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8217;10 Low scoring students&#8217;<\/span><span class=\"sy0\">,<\/span>color<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;b&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">xlabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Marks&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">ylabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Student count&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">title<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Scatter Plot&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">legend<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">show<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><\/div>\n<\/div>\n<p>The scatter plot created with above sample data will look like the following:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34867\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/7-10.png\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/7-10.png 386w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/7-10-300x216.png 300w\" alt=\"\" width=\"386\" height=\"278\" \/><\/p>\n<h3><strong>Area Plots<\/strong><\/h3>\n<p>The area plots are used mainly to track changes in data over time. They are also termed as stack plots in various texts. For example, if we want to establish a representation of time invested by a student to each subject in a single day, here is the code with which we can do the same:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">days\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">3<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">5<\/span><span class=\"br0\">]<\/span><\/p>\n<p>physics\u00a0<span class=\"sy0\">=<\/span><span class=\"br0\">[<\/span><span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">6<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">7<\/span><span class=\"br0\">]<\/span><br \/>\npython\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">6<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">]<\/span><br \/>\nr\u00a0<span class=\"sy0\">=<\/span><span class=\"br0\">[<\/span><span class=\"nu0\">7<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">9<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">4<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">3<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">]<\/span><br \/>\n<span class=\"kw3\">math<\/span>\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">5<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">7<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">13<\/span><span class=\"br0\">]<\/span><\/p>\n<p>plt.<span class=\"me1\">plot<\/span><span class=\"br0\">(<\/span><span class=\"br0\">[<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span><span class=\"br0\">[<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span>color<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;m&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;Physics&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0linewidth<span class=\"sy0\">=<\/span><span class=\"nu0\">5<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">plot<\/span><span class=\"br0\">(<\/span><span class=\"br0\">[<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span><span class=\"br0\">[<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span>color<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;c&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;Python&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0linewidth<span class=\"sy0\">=<\/span><span class=\"nu0\">5<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">plot<\/span><span class=\"br0\">(<\/span><span class=\"br0\">[<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span><span class=\"br0\">[<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span>color<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;r&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;R&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0linewidth<span class=\"sy0\">=<\/span><span class=\"nu0\">5<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">plot<\/span><span class=\"br0\">(<\/span><span class=\"br0\">[<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span><span class=\"br0\">[<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">,<\/span>color<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;k&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0label<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;Math&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0linewidth<span class=\"sy0\">=<\/span><span class=\"nu0\">5<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">stackplot<\/span><span class=\"br0\">(<\/span>days<span class=\"sy0\">,<\/span>\u00a0physics<span class=\"sy0\">,<\/span>\u00a0python<span class=\"sy0\">,<\/span>\u00a0r<span class=\"sy0\">,<\/span>\u00a0<span class=\"kw3\">math<\/span><span class=\"sy0\">,<\/span>\u00a0colors<span class=\"sy0\">=<\/span><span class=\"br0\">[<\/span><span class=\"st0\">&#8216;g&#8217;<\/span><span class=\"sy0\">,<\/span><span class=\"st0\">&#8216;k&#8217;<\/span><span class=\"sy0\">,<\/span><span class=\"st0\">&#8216;r&#8217;<\/span><span class=\"sy0\">,<\/span><span class=\"st0\">&#8216;b&#8217;<\/span><span class=\"br0\">]<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">xlabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;x&#8217;<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">ylabel<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;y&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">title<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;Stack Plot&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">legend<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">show<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><\/div>\n<\/div>\n<p>The area plot created with above sample data will look like the following:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34868\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/8-9.png\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/8-9.png 386w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/8-9-300x216.png 300w\" alt=\"\" width=\"386\" height=\"278\" \/><\/p>\n<p>The above output clearly establish a difference in time spent by a student in each subject with a clear way of providing the difference and the distribution.<\/p>\n<h3><strong>Pie Charts<\/strong><\/h3>\n<p>When we want to break whole part into multiple parts and describe the amount each part occupies, a pie chart is a good way to make this presentation. It is used to show the percentage of data in complete data set. Here is a basic code snippet to make a simple pie chart:<\/p>\n<div class=\"codecolorer-container python default\">\n<div class=\"python codecolorer\">labels\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"st0\">&#8216;Python&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"st0\">&#8216;C++&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"st0\">&#8216;Ruby&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"st0\">&#8216;Java&#8217;<\/span><br \/>\nsizes\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"nu0\">225<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">130<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">245<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">210<\/span><span class=\"br0\">]<\/span><br \/>\ncolors\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">[<\/span><span class=\"st0\">&#8216;r&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"st0\">&#8216;b&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"st0\">&#8216;g&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"st0\">&#8216;c&#8217;<\/span><span class=\"br0\">]<\/span><br \/>\nexplode\u00a0<span class=\"sy0\">=<\/span>\u00a0<span class=\"br0\">(<\/span><span class=\"nu0\">0.1<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span>\u00a0<span class=\"nu0\">0<\/span><span class=\"br0\">)<\/span>\u00a0\u00a0<span class=\"co1\"># explode 1st slice<\/span><\/p>\n<p><span class=\"co1\"># Plot<\/span><br \/>\nplt.<span class=\"me1\">pie<\/span><span class=\"br0\">(<\/span>sizes<span class=\"sy0\">,<\/span>\u00a0explode<span class=\"sy0\">=<\/span>explode<span class=\"sy0\">,<\/span>\u00a0labels<span class=\"sy0\">=<\/span>labels<span class=\"sy0\">,<\/span>\u00a0colors<span class=\"sy0\">=<\/span>colors<span class=\"sy0\">,<\/span><\/p>\n<p>autopct<span class=\"sy0\">=<\/span><span class=\"st0\">&#8216;%1.1f%%&#8217;<\/span><span class=\"sy0\">,<\/span>\u00a0shadow<span class=\"sy0\">=<\/span><span class=\"kw2\">True<\/span><span class=\"sy0\">,<\/span>\u00a0startangle<span class=\"sy0\">=<\/span><span class=\"nu0\">140<\/span><span class=\"br0\">)<\/span><\/p>\n<p>plt.<span class=\"me1\">axis<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8216;equal&#8217;<\/span><span class=\"br0\">)<\/span><br \/>\nplt.<span class=\"me1\">show<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span><\/div>\n<\/div>\n<p>The pie chart created with above sample data will look like the following:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-34869\" src=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/9-8.png\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" srcset=\"https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/9-8.png 356w, https:\/\/linuxhint.com\/wp-content\/uploads\/2019\/01\/9-8-300x202.png 300w\" alt=\"\" width=\"356\" height=\"240\" \/><\/p>\n<p>In above sections, we looked at various graphical components we can construct with Matplotlib library to represent our data in various forms and establish differences in an intuitive manner while being statistical.<\/p>\n<h3>Features and Alternatives for Matplotlib<\/h3>\n<p>One of the best features for matplotlib is that it can work on many operating systems and graphical backends. It supports dozens of Operating systems and graphical output which we looked at in this lesson. This means we can count on it when it comes to providing an output in a way we need.<\/p>\n<p>There are various other libraries present which can compete with matplotlib like:<\/p>\n<ol>\n<li><a href=\"http:\/\/seahorn.github.io\/\">Seahorn<\/a><\/li>\n<li><a href=\"https:\/\/plot.ly\/\">Plotly<\/a><\/li>\n<li><a href=\"https:\/\/ggplot2.tidyverse.org\/\">Ggplot2<\/a><\/li>\n<\/ol>\n<p>Even though above mentioned libraries might present some advanced ways to describe and present data in graphical manner but there no denial in the simplicity and effective nature of the matplotlib library.<\/p>\n<h4>Conclusion<\/h4>\n<p>In this lesson, we looked at various aspects of this data visualisation library which we can use with Python to generate beautiful and intuitive graphs which can visualise data in a form which business wants from a platform. The Matplotlib is one of the most important visualisation library when it comes to data engineering and presenting data in most visual forms, definitely a skill we need to have under our belt.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Python Matplotlib Tutorial In this lesson on Python\u00a0Matplotlib\u00a0library, we will look at various aspects of this data visualisation library which we can use with Python to generate beautiful and intuitive graphs which can visualise data in a form which business wants from a platform. To make this lesson complete, we will cover the following sections: &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/01\/06\/python-matplotlib-tutorial-linux-hint\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Python Matplotlib Tutorial \u2013 Linux Hint&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7238","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/7238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/comments?post=7238"}],"version-history":[{"count":2,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/7238\/revisions"}],"predecessor-version":[{"id":7555,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/7238\/revisions\/7555"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/media?parent=7238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/categories?post=7238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/tags?post=7238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}