<?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: Xi</title>
    <description>The latest articles on DEV Community by Xi (@hahahumble).</description>
    <link>https://dev.to/hahahumble</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F847767%2Fc14309c9-631c-4d20-82f2-77a1b0a4ca6e.jpeg</url>
      <title>DEV Community: Xi</title>
      <link>https://dev.to/hahahumble</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hahahumble"/>
    <language>en</language>
    <item>
      <title>Cross-Validation Clearly Explained in 5 Graphs</title>
      <dc:creator>Xi</dc:creator>
      <pubDate>Sun, 10 Jul 2022 05:05:20 +0000</pubDate>
      <link>https://dev.to/hahahumble/cross-validation-clearly-explained-in-5-graphs-132o</link>
      <guid>https://dev.to/hahahumble/cross-validation-clearly-explained-in-5-graphs-132o</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this article, I will introduce holdout validation and several common cross-validation methods.&lt;/p&gt;

&lt;p&gt;I have created some beautiful illustrations to help understand these concepts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Holdout Validation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TdClVSam--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4iovqb9rmse8q5a2pwrz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TdClVSam--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4iovqb9rmse8q5a2pwrz.png" alt="cross-validation-1" width="880" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Leave-p-out Cross-Validation(LpOCV)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UzDrpkJ_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u6uncg4qg8vf3cbctww6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UzDrpkJ_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u6uncg4qg8vf3cbctww6.png" alt="cross-validation-2" width="880" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Leave-one-out Cross-Validation(LOOCV)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tCaUpRoU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mukxgzy1bjao6jt0nuvv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tCaUpRoU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mukxgzy1bjao6jt0nuvv.png" alt="cross-validation-3" width="880" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  K-Fold Cross-Validation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T7P-O3Jc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nuof217uv8wmucv8z1s9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T7P-O3Jc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nuof217uv8wmucv8z1s9.png" alt="cross-validation-4" width="880" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Repeated Random Subsampling Validation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_5kqRWDQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zitdg7szzvj537h1wuqp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_5kqRWDQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zitdg7szzvj537h1wuqp.png" alt="cross-validation-5" width="880" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Make AWS S3 bucket public accessible</title>
      <dc:creator>Xi</dc:creator>
      <pubDate>Wed, 06 Jul 2022 04:55:19 +0000</pubDate>
      <link>https://dev.to/hahahumble/make-aws-s3-bucket-public-accessible-48fd</link>
      <guid>https://dev.to/hahahumble/make-aws-s3-bucket-public-accessible-48fd</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;When you use AWS S3 for the first time, you may encounter access deny issues.&lt;br&gt;
This issue occurs when you open the object URL in the browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uBIvI8Qg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-access-deny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uBIvI8Qg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-access-deny.png" alt="image" width="880" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The two most likely causes of this problem are the following.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Amazon S3 Block Public Access is disabled&lt;/li&gt;
&lt;li&gt;The bucket policy denies public visit 
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here is how to solve this problem.&lt;/p&gt;
&lt;h2&gt;
  
  
  Solve problem
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Unchecking "block all public access"
&lt;/h3&gt;

&lt;p&gt;(a). Goto permissions tab in your bucket and click edit in the block public access section&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_x1JCxxN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-permission.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_x1JCxxN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-permission.png" alt="image" width="880" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(b). Make sure "block all public access" is off&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mc5iEAYY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-access.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mc5iEAYY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-access.png" alt="image" width="880" height="725"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Apply a new bucket policy to your bucket
&lt;/h3&gt;

&lt;p&gt;(a). Click edit in the bucket policy section&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B5nJC1W_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-policy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B5nJC1W_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-policy.png" alt="image" width="880" height="776"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(b). Add the following bucket policy to your bucket&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PublicReadGetObject"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Principal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"s3:GetObject"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{Bucket-ARN}/*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Remember to change &lt;code&gt;{Bucket-ARN}&lt;/code&gt; to your own.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Success
&lt;/h2&gt;

&lt;p&gt;After these two steps, you may notice an additional “Publicly accessible” icon under your bucket.&lt;br&gt;&lt;br&gt;
When we open the object URL in the browser, we will see that it is now accessible properly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mP5_AySr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-success.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mP5_AySr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/aws/s3-success.png" alt="image" width="880" height="624"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understand plt and axes in matplotlib</title>
      <dc:creator>Xi</dc:creator>
      <pubDate>Wed, 06 Jul 2022 04:51:36 +0000</pubDate>
      <link>https://dev.to/hahahumble/understand-plt-and-axes-in-matplotlib-5g9</link>
      <guid>https://dev.to/hahahumble/understand-plt-and-axes-in-matplotlib-5g9</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Matplotlib is one of the most popular python libraries for data visualization, but new users may have difficulties getting started. When I first started using matplotlib, I found &lt;code&gt;plt&lt;/code&gt; and &lt;code&gt;axes&lt;/code&gt; to be the two most confusing concepts. So this article will discuss how to use &lt;code&gt;plt&lt;/code&gt; and &lt;code&gt;axes&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plot Single Graph
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Import libraries
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you want to draw a single graph, you can use &lt;code&gt;plt.plot()&lt;/code&gt; directly, but of course, using &lt;code&gt;plt.subplots()&lt;/code&gt; is also OK.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;The following two methods will produce the same results:&lt;/p&gt;

&lt;p&gt;1.Using &lt;code&gt;plt.plot()&lt;/code&gt; directly&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;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# 10 random number between [0, 1)
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&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--i60kJvoI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/matplotlib/fig-axes-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i60kJvoI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/matplotlib/fig-axes-1.png" alt="Image description" width="880" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Using &lt;code&gt;plt.subplots()&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;fig&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;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;subplots&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# Create a figure and a set of subplots.
&lt;/span&gt;
&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&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--1rtt7gf1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/matplotlib/fig-axes-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1rtt7gf1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/matplotlib/fig-axes-2.png" alt="Image description" width="880" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Plot Multiple Graphs
&lt;/h2&gt;

&lt;p&gt;When you want to draw multiple graphs, you should use &lt;code&gt;plt.subplots()&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="c1"&gt;# 2x2, a total of 4 graphs
&lt;/span&gt;&lt;span class="n"&gt;n_rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;n_cols&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;

&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;axes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;subplots&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nrows&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;n_rows&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ncols&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;n_cols&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Create a figure and subplots of size 2x2
&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row_num&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n_rows&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;col_num&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n_cols&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;axes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row_num&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;col_num&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;suptitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"main title"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;fig&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tight_layout&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# Smaller padding
&lt;/span&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&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--fuz1N4QC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/matplotlib/fig-axes-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fuz1N4QC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://oranges-buckets.s3.us-west-2.amazonaws.com/image/tutorial/matplotlib/fig-axes-3.png" alt="Image description" width="880" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
