<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SarthakJariwala</title>
    <description>The latest articles on DEV Community by SarthakJariwala (@sarthakjariwala).</description>
    <link>https://dev.to/sarthakjariwala</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F553657%2Facabb9bf-53f6-48d0-b49c-9b3b90154694.jpeg</url>
      <title>DEV Community: SarthakJariwala</title>
      <link>https://dev.to/sarthakjariwala</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sarthakjariwala"/>
    <language>en</language>
    <item>
      <title>Attractive, Effective &amp; Descriptive Image Visualization in Python</title>
      <dc:creator>SarthakJariwala</dc:creator>
      <pubDate>Mon, 11 Jan 2021 03:35:49 +0000</pubDate>
      <link>https://dev.to/sarthakjariwala/attractive-effective-descriptive-image-visualization-in-python-3m7g</link>
      <guid>https://dev.to/sarthakjariwala/attractive-effective-descriptive-image-visualization-in-python-3m7g</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Introducing &lt;code&gt;seaborn-image&lt;/code&gt; for image visualization in python&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sqUWfA3h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1d1ajhzj0n67b4qbwdsl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sqUWfA3h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1d1ajhzj0n67b4qbwdsl.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This blog post introduces some of the functionalities in &lt;a href="https://github.com/SarthakJariwala/seaborn-image"&gt;seaborn-image&lt;/a&gt; for descriptive, effective and attractive image visualization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/SarthakJariwala/seaborn-image"&gt;Seaborn-image&lt;/a&gt; is an open source python visualization library for images built on top of &lt;a href="https://matplotlib.org/"&gt;matplotlib&lt;/a&gt;. It aims to provide a high level API to visualize image data similar to how &lt;a href="https://seaborn.pydata.org/"&gt;seaborn&lt;/a&gt; provides high level API to visualize tabular data. As the name suggests, &lt;code&gt;seaborn-image&lt;/code&gt; is heavily inspired by the &lt;code&gt;seaborn&lt;/code&gt; library.&lt;/p&gt;

&lt;p&gt;Let's begin by installing &lt;code&gt;seaborn-image&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; seaborn-image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and then importing &lt;code&gt;seaborn-image&lt;/code&gt; as &lt;code&gt;isns&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;All the functions in &lt;code&gt;seaborn-image&lt;/code&gt; are available in a flat namespace.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;seaborn_image&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;isns&lt;/span&gt;

&lt;span class="c1"&gt;# set context 
&lt;/span&gt;&lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_context&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"notebook"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# set global image settings
&lt;/span&gt;&lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cmap&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"deep"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;origin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"lower"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# load sample dataset
&lt;/span&gt;&lt;span class="n"&gt;polymer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"polymer"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;isns.set_context()&lt;/code&gt; helps us globally change the display contexts (similar to &lt;code&gt;seaborn.set_context()&lt;/code&gt;). &lt;/p&gt;

&lt;p&gt;In addition to the context, we also globally set properties for drawing our image using &lt;code&gt;isns.set_image()&lt;/code&gt;. Later, we will also look at globally setting image scalebar properties using &lt;code&gt;isns.set_scalebar()&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Under the hood, these functions use &lt;a href="https://matplotlib.org/tutorials/introductory/customizing.html"&gt;matplotlib rcParams&lt;/a&gt; for customizing displays. You can refer to the &lt;a href="https://seaborn-image.readthedocs.io/en/latest/api/_context.html"&gt;docs&lt;/a&gt; for more details on settings in &lt;code&gt;seaborn-image&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Lastly, we load a sample polymer dataset from &lt;code&gt;seaborn-image&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  2-D images using &lt;code&gt;imgplot()&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;Visualizing the image is as simple as calling the &lt;a href="https://seaborn-image.readthedocs.io/en/latest/api/imgplot.html"&gt;&lt;code&gt;imgplot()&lt;/code&gt;&lt;/a&gt; function with the image data. &lt;code&gt;imgplot()&lt;/code&gt; uses &lt;a href="https://matplotlib.org/3.2.1/api/_as_gen/matplotlib.pyplot.imshow.html"&gt;matplotlib imshow&lt;/a&gt; under the hood but provides easy access to a lot of customizations. We will take a look at a few of the customizations in this blog post.&lt;/p&gt;

&lt;p&gt;By default, it adds a &lt;code&gt;colorbar&lt;/code&gt; and turns off axis ticks. However, that is only beginning to scratch the surface! &lt;/p&gt;

&lt;p&gt;We can get some basic descriptive statistics about our image data by setting &lt;code&gt;describe=True&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;imgplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;polymer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;describe&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# default is False
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;No. of Obs. : 65536
Min. Value : -8.2457214
Max. Value : 43.714034999999996
Mean : 7.456410761947062
Variance : 92.02680396572863
Skewness : 0.47745180538933696
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gYkhuMI0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bvt3c9rcp82zjslytmyb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gYkhuMI0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bvt3c9rcp82zjslytmyb.png" alt="2d-image-viz"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Draw a scalebar
&lt;/h1&gt;

&lt;p&gt;Although we know some basic information about our image data, we still do not have any information about the physical size of the features in the image. We can draw a scalebar to rectify it.&lt;/p&gt;

&lt;p&gt;To add a scalebar to the image we can specify the individul pixel size &lt;code&gt;dx&lt;/code&gt; and physical &lt;code&gt;units&lt;/code&gt;. Here, the individual pixel is 15 nanometers in physical size. So, we set &lt;code&gt;dx=15&lt;/code&gt; and &lt;code&gt;units="nm"&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;imgplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;polymer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;dx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# physical size of the pixel
&lt;/span&gt;    &lt;span class="n"&gt;units&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"nm"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# units 
&lt;/span&gt;    &lt;span class="n"&gt;cbar_label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Height (nm)"&lt;/span&gt;  &lt;span class="c1"&gt;# colorbar label to our image
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5ryLIU0k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ry9cmfgr6iq1m906a992.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5ryLIU0k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ry9cmfgr6iq1m906a992.png" alt="image-with-scalebar"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: We only specified the individual pixel size and units, and a scalebar of appropriate size was drawn.&lt;/p&gt;

&lt;p&gt;Tip: You can change the scalebar properties such as scalebar location, label location, color, etc. globally using &lt;a href="https://seaborn-image.readthedocs.io/en/latest/api/_context.html#seaborn_image.set_scalebar"&gt;&lt;code&gt;isns.set_scalebar()&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Correct for outliers
&lt;/h1&gt;

&lt;p&gt;Data is rarely perfect. It is often riddled with outliers and these outliers affect the image display.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# sample data with outliers
&lt;/span&gt;&lt;span class="n"&gt;pol_outliers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"polymer outliers"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;imgplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pol_outliers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cbar_label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Height (nm)"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---1WdLZye--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xel9ejs2f2058f74ocze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---1WdLZye--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xel9ejs2f2058f74ocze.png" alt="img-with-outliers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above example dataset has a single outlier pixel which is affecting the image display. We can correct for the outliers using the &lt;code&gt;robust&lt;/code&gt; parameter in all &lt;code&gt;seaborn-image&lt;/code&gt; &lt;a href="https://seaborn-image.readthedocs.io/en/latest/reference.html"&gt;functions&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;imgplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;pol_outliers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;robust&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# set robust plotting
&lt;/span&gt;    &lt;span class="n"&gt;perc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;99.5&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;  &lt;span class="c1"&gt;# set the percentile of the data to view
&lt;/span&gt;    &lt;span class="n"&gt;cbar_label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Height (nm)"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ClKWoOH3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hclbuxcx5edorfain05v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ClKWoOH3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hclbuxcx5edorfain05v.png" alt="outlier-corrected-image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, we are setting &lt;code&gt;robust=True&lt;/code&gt; and plotting 0.5 to 99.5 percentile of the data (specified using the &lt;code&gt;perc&lt;/code&gt; parameter). Doing so appropriately scales the colormap based on the robust percentile specified and also draws colorbar extensions without any additional code.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: You can specify the &lt;code&gt;vmin&lt;/code&gt; and &lt;code&gt;vmax&lt;/code&gt; parameter to override the &lt;code&gt;robust&lt;/code&gt; parameter. See &lt;code&gt;imgplot&lt;/code&gt; &lt;a href="https://seaborn-image.readthedocs.io/en/latest/api/imgplot.html"&gt;documentation examples&lt;/a&gt; for more details&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Image data distribution - &lt;code&gt;imghist()&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;One of the most important things in image visualization is knowing the distribution of the underlying image data. Here, we are using &lt;a href="https://seaborn-image.readthedocs.io/en/latest/api/imghist.html"&gt;&lt;code&gt;imghist()&lt;/code&gt;&lt;/a&gt; to plot a histogram along with the image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;fig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;imghist&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;polymer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;units&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"nm"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cbar_label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Height (nm)"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# note that there are no new parameters required
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sqUWfA3h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1d1ajhzj0n67b4qbwdsl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sqUWfA3h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1d1ajhzj0n67b4qbwdsl.png" alt="image-with-histogram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using histogram along with an appropriate colormap provides additional information about the image data. For instance, from the histogram above, we can see that majority of the data has values less than 30 nm and there are very few values that are close to 40 nm - something that may not be obvious if we look at the image without the histogram.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tip: You can change the number of bins using the &lt;code&gt;bins&lt;/code&gt; parameter and the orientation of the colorbar and histogram using the &lt;code&gt;orientation&lt;/code&gt; parameter. See &lt;code&gt;imghist&lt;/code&gt; &lt;a href="https://seaborn-image.readthedocs.io/en/latest/api/imghist.html"&gt;documentation examples&lt;/a&gt; for more details&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Importantly, generating the entire figure - with a histogram matching the colorbar levels, scalebar describing the physical size of the features in the image, colorbar label, hiding axis ticks, etc. - took only one line of code. In essense, this is what &lt;code&gt;seaborn-image&lt;/code&gt; aims to provide - &lt;strong&gt;&lt;em&gt;attractive, descriptive and effective image visualization&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Lastly, this post has only introduced &lt;strong&gt;some&lt;/strong&gt; of the high level API that &lt;code&gt;seaborn-image&lt;/code&gt; provides for image visualization. In later posts, we will take a look at other functionalities such as easily transforming and visualizing image data, working with RGB images as well as visualizing multi-dimensional images. &lt;/p&gt;




&lt;p&gt;For more details, you can check out the detailed &lt;a href="https://seaborn-image.readthedocs.io/en/latest/"&gt;documentation&lt;/a&gt; and &lt;a href="https://seaborn-image.readthedocs.io/en/latest/tutorial.html"&gt;tutorials&lt;/a&gt; and the project on &lt;a href="https://github.com/SarthakJariwala/seaborn-image"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>visualization</category>
      <category>datascience</category>
    </item>
  </channel>
</rss>
