Comical Data Visualization in Python Using Matplotlib
How to make comical visualizations in Matplotlib? Explained using a Netflix Movie and TV Show dataset.
Data visualization is a great way to tell a story. You can easily absorb information and identify patterns in data. One of our students decided to create a data visualization in Python using Matplotlib to understand the different types of content available on Netflix.
This article will focus on using Matplotlib for data visualization in a fun way. Read the step-by-step guide that Paridhi put together. Enjoy!
After you’re done watching a brilliant show or movie on Netflix, does it ever occur to you just how awesome Netflix is for giving you access to this amazing plethora of content? Surely, I’m not alone in this, am I?
One thought leads to another, and before you know it, you’ve made up your mind to do an exploratory data analysis to find out more about who the most popular actors are and which country prefers which genre.
Now, I’ve spent my fair share of time making regular bar plots and pie plots using Python, and while they do a perfect job of conveying the results, I wanted to add a little fun element to this project.
I recently learned that you can create xkcd-like plots in Matplotlib, one of Python’s most popular data visualization libraries, and decided that I should comify all my Matplotlib visualizations in this project just to make things a little more interesting.
Let’s take a look at what the data has to say!
The data
I used this dataset, which is available on Kaggle. It contains 7,787 movie and TV show titles available on Netflix as of 2020.
To start off, I installed the required libraries and read the CSV file.
<span class="token keyword">import</span> pandas <span class="token keyword">as</span> pd
pan class="token keyword">import matplotlib<span class="token punctuation">.</span>pyplot <span class="token keyword">as</span> plt
t<span class="token punctuation">.</span>rcParams<span class="token punctuation">[</span><span class="token string">'figure.dpi'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">200</span>
<span class="token operator">=</span> pd<span class="token punctuation">.</span>read_csv<span class="token punctuation">(</span><span class="token string">"../input/netflix-shows/netflix_titles.csv"</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span>
I also added new features to the dataset that I will use later on in the project.
df<span class="token punctuation">[</span><span class="token string">"date_added"</span><span class="token punctuation">]</span> <span class="token operator">=</span> pd<span class="token punctuation">.</span>to_datetime<span class="token punctuation">(</span>df<span class="token punctuation">[</span><span class="token string">'date_added'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'year_added'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'date_added'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>dt<span class="token punctuation">.</span>year<span class="token punctuation">.</span>astype<span class="token punctuation">(</span><span class="token string">'Int64'</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'month_added'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'date_added'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>dt<span class="token punctuation">.</span>month
<span class="token punctuation">[</span><span class="token string">'season_count'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">.</span>apply<span class="token punctuation">(</span><span class="token keyword">lambda</span> x <span class="token punctuation">:</span> x<span class="token punctuation">[</span><span class="token string">'duration'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">" "</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">if</span> <span class="token string">"Season"</span> <span class="token keyword">in</span> x<span class="token punctuation">[</span><span class="token string">'duration'</span><span class="token punctuation">]</span> <span class="token keyword">else</span> <span class="token string">""</span><span class="token punctuation">,</span> axis <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'duration'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">.</span>apply<span class="token punctuation">(</span><span class="token keyword">lambda</span> x <span class="token punctuation">:</span> x<span class="token punctuation">[</span><span class="token string">'duration'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">" "</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">if</span> <span class="token string">"Season"</span> <span class="token operator">not</span> <span class="token keyword">in</span> x<span class="token punctuation">[</span><span class="token string">'duration'</span><span class="token punctuation">]</span> <span class="token keyword">else</span> <span class="token string">""</span><span class="token punctuation">,</span> axis <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span>
Now we can get to the interesting stuff!
Let me also add that, to XKCDify visualizations in matplotlib, you just need to engulf all your plotting code within the following block, and you’ll be all set:
<span class="token keyword">with</span> plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
pan class="token comment" spellcheck="true"># all your regular visualization code goes in here
1. Netflix Through the Years
First, I thought it would be worth looking at a timeline that depicts the evolution of Netflix over the years.
<span class="token keyword">from</span> datetime <span class="token keyword">import</span> datetime
n class="token comment" spellcheck="true"># these go on the numbers below
ates <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string">"1997\nFounded"</span><span class="token punctuation">,</span>
<span class="token string">"1998\nMail Service"</span><span class="token punctuation">,</span>
<span class="token string">"2003\nGoes Public"</span><span class="token punctuation">,</span>
<span class="token string">"2007\nStreaming service"</span><span class="token punctuation">,</span>
<span class="token string">"2016\nGoes Global"</span><span class="token punctuation">,</span>
<span class="token string">"2021\nNetflix & Chill"</span>
n class="token punctuation">]
<span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5.3</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span><span class="token number">9</span><span class="token punctuation">]</span>
n class="token comment" spellcheck="true"># the numbers go on these
ub_x <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1.5</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">6.5</span><span class="token punctuation">,</span><span class="token number">7</span><span class="token punctuation">]</span>
ub_times <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string">"1998"</span><span class="token punctuation">,</span><span class="token string">"2000"</span><span class="token punctuation">,</span><span class="token string">"2006"</span><span class="token punctuation">,</span><span class="token string">"2010"</span><span class="token punctuation">,</span><span class="token string">"2012"</span>
n class="token punctuation">]
ext <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string">"Netflix.com launched"</span><span class="token punctuation">,</span>
<span class="token string">"Starts\nPersonal\nRecommendations"</span><span class="token punctuation">,</span><span class="token string">"Billionth DVD Delivery"</span><span class="token punctuation">,</span><span class="token string">"Canadian\nLaunch"</span><span class="token punctuation">,</span><span class="token string">"UK Launch"</span><span class="token punctuation">]</span>
n class="token keyword">with plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
n class="token comment" spellcheck="true"># Set figure & Axes
fig<span class="token punctuation">,</span> ax <span class="token operator">=</span> plt<span class="token punctuation">.</span>subplots<span class="token punctuation">(</span>figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">15</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">,</span> constrained_layout<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>set_ylim<span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">1.75</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>set_xlim<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Timeline : line</span>
ax<span class="token punctuation">.</span>axhline<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> xmin<span class="token operator">=</span><span class="token number">0.1</span><span class="token punctuation">,</span> xmax<span class="token operator">=</span><span class="token number">0.9</span><span class="token punctuation">,</span> c<span class="token operator">=</span><span class="token string">'deeppink'</span><span class="token punctuation">,</span> zorder<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Timeline : Date Points</span>
ax<span class="token punctuation">.</span>scatter<span class="token punctuation">(</span>tl_x<span class="token punctuation">,</span> np<span class="token punctuation">.</span>zeros<span class="token punctuation">(</span>len<span class="token punctuation">(</span>tl_x<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> s<span class="token operator">=</span><span class="token number">120</span><span class="token punctuation">,</span> c<span class="token operator">=</span><span class="token string">'palevioletred'</span><span class="token punctuation">,</span> zorder<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>scatter<span class="token punctuation">(</span>tl_x<span class="token punctuation">,</span> np<span class="token punctuation">.</span>zeros<span class="token punctuation">(</span>len<span class="token punctuation">(</span>tl_x<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> s<span class="token operator">=</span><span class="token number">30</span><span class="token punctuation">,</span> c<span class="token operator">=</span><span class="token string">'darkmagenta'</span><span class="token punctuation">,</span> zorder<span class="token operator">=</span><span class="token number">3</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Timeline : Time Points</span>
ax<span class="token punctuation">.</span>scatter<span class="token punctuation">(</span>tl_sub_x<span class="token punctuation">,</span> np<span class="token punctuation">.</span>zeros<span class="token punctuation">(</span>len<span class="token punctuation">(</span>tl_sub_x<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> s<span class="token operator">=</span><span class="token number">50</span><span class="token punctuation">,</span> c<span class="token operator">=</span><span class="token string">'darkmagenta'</span><span class="token punctuation">,</span>zorder<span class="token operator">=</span><span class="token number">4</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Date Text</span>
<span class="token keyword">for</span> x<span class="token punctuation">,</span> date <span class="token keyword">in</span> zip<span class="token punctuation">(</span>tl_x<span class="token punctuation">,</span> tl_dates<span class="token punctuation">)</span><span class="token punctuation">:</span>
ax<span class="token punctuation">.</span>text<span class="token punctuation">(</span>x<span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">0.55</span><span class="token punctuation">,</span> date<span class="token punctuation">,</span> ha<span class="token operator">=</span><span class="token string">'center'</span><span class="token punctuation">,</span>
fontfamily<span class="token operator">=</span><span class="token string">'serif'</span><span class="token punctuation">,</span> fontweight<span class="token operator">=</span><span class="token string">'bold'</span><span class="token punctuation">,</span>
color<span class="token operator">=</span><span class="token string">'royalblue'</span><span class="token punctuation">,</span>fontsize<span class="token operator">=</span><span class="token number">12</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Stemplot : vertical line</span>
levels <span class="token operator">=</span> np<span class="token punctuation">.</span>zeros<span class="token punctuation">(</span>len<span class="token punctuation">(</span>tl_sub_x<span class="token punctuation">)</span><span class="token punctuation">)</span>
levels<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">0.3</span>
levels<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token operator">-</span><span class="token number">0.3</span>
markerline<span class="token punctuation">,</span> stemline<span class="token punctuation">,</span> baseline <span class="token operator">=</span> ax<span class="token punctuation">.</span>stem<span class="token punctuation">(</span>tl_sub_x<span class="token punctuation">,</span> levels<span class="token punctuation">,</span> use_line_collection<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>setp<span class="token punctuation">(</span>baseline<span class="token punctuation">,</span> zorder<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>setp<span class="token punctuation">(</span>markerline<span class="token punctuation">,</span> marker<span class="token operator">=</span><span class="token string">','</span><span class="token punctuation">,</span> color<span class="token operator">=</span><span class="token string">'darkmagenta'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>setp<span class="token punctuation">(</span>stemline<span class="token punctuation">,</span> color<span class="token operator">=</span><span class="token string">'darkmagenta'</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Text</span>
<span class="token keyword">for</span> idx<span class="token punctuation">,</span> x<span class="token punctuation">,</span> time<span class="token punctuation">,</span> txt <span class="token keyword">in</span> zip<span class="token punctuation">(</span>range<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> len<span class="token punctuation">(</span>tl_sub_x<span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">,</span> tl_sub_x<span class="token punctuation">,</span> tl_sub_times<span class="token punctuation">,</span> tl_text<span class="token punctuation">)</span><span class="token punctuation">:</span>
ax<span class="token punctuation">.</span>text<span class="token punctuation">(</span>x<span class="token punctuation">,</span> <span class="token number">1.3</span><span class="token operator">*</span><span class="token punctuation">(</span>idx<span class="token operator">%</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">0.5</span><span class="token punctuation">,</span> time<span class="token punctuation">,</span> ha<span class="token operator">=</span><span class="token string">'center'</span><span class="token punctuation">,</span>
fontfamily<span class="token operator">=</span><span class="token string">'serif'</span><span class="token punctuation">,</span> fontweight<span class="token operator">=</span><span class="token string">'bold'</span><span class="token punctuation">,</span>
color<span class="token operator">=</span><span class="token string">'royalblue'</span><span class="token punctuation">,</span> fontsize<span class="token operator">=</span><span class="token number">11</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>text<span class="token punctuation">(</span>x<span class="token punctuation">,</span> <span class="token number">1.3</span><span class="token operator">*</span><span class="token punctuation">(</span>idx<span class="token operator">%</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">0.6</span><span class="token punctuation">,</span> txt<span class="token punctuation">,</span> va<span class="token operator">=</span><span class="token string">'top'</span><span class="token punctuation">,</span> ha<span class="token operator">=</span><span class="token string">'center'</span><span class="token punctuation">,</span>
fontfamily<span class="token operator">=</span><span class="token string">'serif'</span><span class="token punctuation">,</span>color<span class="token operator">=</span><span class="token string">'royalblue'</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Spine</span>
<span class="token keyword">for</span> spine <span class="token keyword">in</span> <span class="token punctuation">[</span><span class="token string">"left"</span><span class="token punctuation">,</span> <span class="token string">"top"</span><span class="token punctuation">,</span> <span class="token string">"right"</span><span class="token punctuation">,</span> <span class="token string">"bottom"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>
ax<span class="token punctuation">.</span>spines<span class="token punctuation">[</span>spine<span class="token punctuation">]</span><span class="token punctuation">.</span>set_visible<span class="token punctuation">(</span><span class="token boolean">False</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Ticks</span>
ax<span class="token punctuation">.</span>set_xticks<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>set_yticks<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment" spellcheck="true"># Title</span>
ax<span class="token punctuation">.</span>set_title<span class="token punctuation">(</span><span class="token string">"Netflix through the years"</span><span class="token punctuation">,</span> fontweight<span class="token operator">=</span><span class="token string">"bold"</span><span class="token punctuation">,</span> fontfamily<span class="token operator">=</span><span class="token string">'serif'</span><span class="token punctuation">,</span> fontsize<span class="token operator">=</span><span class="token number">16</span><span class="token punctuation">,</span> color<span class="token operator">=</span><span class="token string">'royalblue'</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>text<span class="token punctuation">(</span><span class="token number">2.4</span><span class="token punctuation">,</span><span class="token number">1.57</span><span class="token punctuation">,</span><span class="token string">"From DVD rentals to a global audience of over 150m people - is it time for Netflix to Chill?"</span><span class="token punctuation">,</span> fontfamily<span class="token operator">=</span><span class="token string">'serif'</span><span class="token punctuation">,</span> fontsize<span class="token operator">=</span><span class="token number">12</span><span class="token punctuation">,</span> color<span class="token operator">=</span><span class="token string">'mediumblue'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
This plot paints a pretty decent picture of Netflix’s journey. Also, the plot looks hand-drawn because of the plt.xkcd() function. Wicked stuff.
2. Movies vs TV Shows
Next, I decided to take a look at the ratio of movies to TV shows.
col <span class="token operator">=</span> <span class="token string">"type"</span>
ped <span class="token operator">=</span> df<span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">.</span>value_counts<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>reset_index<span class="token punctuation">(</span><span class="token punctuation">)</span>
ped <span class="token operator">=</span> grouped<span class="token punctuation">.</span>rename<span class="token punctuation">(</span>columns <span class="token operator">=</span> <span class="token punctuation">{</span>col <span class="token punctuation">:</span> <span class="token string">"count"</span><span class="token punctuation">,</span> <span class="token string">"index"</span> <span class="token punctuation">:</span> col<span class="token punctuation">}</span><span class="token punctuation">)</span>
n class="token keyword">with plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
explode <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0.1</span><span class="token punctuation">)</span> <span class="token comment" spellcheck="true"># only "explode" the 2nd slice (i.e. 'TV Show')</span>
fig1<span class="token punctuation">,</span> ax1 <span class="token operator">=</span> plt<span class="token punctuation">.</span>subplots<span class="token punctuation">(</span>figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">,</span> dpi<span class="token operator">=</span><span class="token number">100</span><span class="token punctuation">)</span>
ax1<span class="token punctuation">.</span>pie<span class="token punctuation">(</span>grouped<span class="token punctuation">[</span><span class="token string">"count"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> explode<span class="token operator">=</span>explode<span class="token punctuation">,</span> labels<span class="token operator">=</span>grouped<span class="token punctuation">[</span><span class="token string">"type"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> autopct<span class="token operator">=</span><span class="token string">'%1.1f%%'</span><span class="token punctuation">,</span>
shadow<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">,</span> startangle<span class="token operator">=</span><span class="token number">90</span><span class="token punctuation">)</span>
ax1<span class="token punctuation">.</span>axis<span class="token punctuation">(</span><span class="token string">'equal'</span><span class="token punctuation">)</span> <span class="token comment" spellcheck="true"># Equal aspect ratio ensures that pie is drawn as a circle.</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
The number of TV shows on the platform is less than a third of the total content. So probably, both you and I have better chances of finding a relatively good movie than a TV Show on Netflix. Sigh.
3. Countries with the Most Content
For my third visualization using Matplotlib, I wanted to make a horizontal bar graph that represented the top 25 countries with the most content. The country column in the DataFrame had a few rows that contained more than 1 country (separated by commas).
To handle this, I split the data in the country column with ", “ as the separator and then put all the countries into a list called categories:
<span class="token keyword">from</span> collections <span class="token keyword">import</span> Counter
<span class="token operator">=</span> <span class="token string">"country"</span>
gories <span class="token operator">=</span> <span class="token string">", "</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>df<span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">.</span>fillna<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">", "</span><span class="token punctuation">)</span>
ter_list <span class="token operator">=</span> Counter<span class="token punctuation">(</span>categories<span class="token punctuation">)</span><span class="token punctuation">.</span>most_common<span class="token punctuation">(</span><span class="token number">25</span><span class="token punctuation">)</span>
ter_list <span class="token operator">=</span> <span class="token punctuation">[</span>_ <span class="token keyword">for</span> _ <span class="token keyword">in</span> counter_list <span class="token keyword">if</span> _<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">!=</span> <span class="token string">""</span><span class="token punctuation">]</span>
ls <span class="token operator">=</span> <span class="token punctuation">[</span>_<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> counter_list<span class="token punctuation">]</span>
es <span class="token operator">=</span> <span class="token punctuation">[</span>_<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> counter_list<span class="token punctuation">]</span>
n class="token keyword">with plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
fig<span class="token punctuation">,</span> ax <span class="token operator">=</span> plt<span class="token punctuation">.</span>subplots<span class="token punctuation">(</span>figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">,</span> dpi<span class="token operator">=</span><span class="token number">100</span><span class="token punctuation">)</span>
y_pos <span class="token operator">=</span> np<span class="token punctuation">.</span>arange<span class="token punctuation">(</span>len<span class="token punctuation">(</span>labels<span class="token punctuation">)</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>barh<span class="token punctuation">(</span>y_pos<span class="token punctuation">,</span> values<span class="token punctuation">,</span> align<span class="token operator">=</span><span class="token string">'center'</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>set_yticks<span class="token punctuation">(</span>y_pos<span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>set_yticklabels<span class="token punctuation">(</span>labels<span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>invert_yaxis<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment" spellcheck="true"># labels read top-to-bottom</span>
ax<span class="token punctuation">.</span>set_xlabel<span class="token punctuation">(</span><span class="token string">'Content'</span><span class="token punctuation">)</span>
ax<span class="token punctuation">.</span>set_title<span class="token punctuation">(</span><span class="token string">'Countries with most content'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
Some overall thoughts after looking at the plot above:
-
The vast majority of content on Netflix is from the United States (quite obvious).
-
Even though Netflix launched quite late in India (in 2016), it’s already in the second position right after the U.S. So, India is a big market for Netflix.
-
I’m going to look for content from Thailand on Netflix, now that I know that it’s there on the platform, brb.
4. Popular Directors and Actors
To take a look at the popular directors and actors, I decided to plot a figure (each) with six subplots from the top six countries with the most content and make horizontal bar charts for each subplot. Take a look at the plots below, and read that first line again.
a. Popular directors:
From collections import Counter
<span class="token keyword">from</span> collections <span class="token keyword">import</span> Counter
n class="token keyword">from matplotlib<span class="token punctuation">.</span>pyplot <span class="token keyword">import</span> figure
n class="token keyword">import math
urs <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"orangered"</span><span class="token punctuation">,</span> <span class="token string">"mediumseagreen"</span><span class="token punctuation">,</span> <span class="token string">"darkturquoise"</span><span class="token punctuation">,</span> <span class="token string">"mediumpurple"</span><span class="token punctuation">,</span> <span class="token string">"deeppink"</span><span class="token punctuation">,</span> <span class="token string">"indianred"</span><span class="token punctuation">]</span>
tries_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"United States"</span><span class="token punctuation">,</span> <span class="token string">"India"</span><span class="token punctuation">,</span> <span class="token string">"United Kingdom"</span><span class="token punctuation">,</span> <span class="token string">"Japan"</span><span class="token punctuation">,</span> <span class="token string">"France"</span><span class="token punctuation">,</span> <span class="token string">"Canada"</span><span class="token punctuation">]</span>
<span class="token operator">=</span> <span class="token string">"director"</span>
n class="token keyword">with plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
figure<span class="token punctuation">(</span>num<span class="token operator">=</span>None<span class="token punctuation">,</span> figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
x<span class="token operator">=</span><span class="token number">1</span>
<span class="token keyword">for</span> country <span class="token keyword">in</span> countries_list<span class="token punctuation">:</span>
country_df <span class="token operator">=</span> df<span class="token punctuation">[</span>df<span class="token punctuation">[</span><span class="token string">"country"</span><span class="token punctuation">]</span><span class="token operator">==</span>country<span class="token punctuation">]</span>
categories <span class="token operator">=</span> <span class="token string">", "</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>country_df<span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">.</span>fillna<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">", "</span><span class="token punctuation">)</span>
counter_list <span class="token operator">=</span> Counter<span class="token punctuation">(</span>categories<span class="token punctuation">)</span><span class="token punctuation">.</span>most_common<span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">)</span>
counter_list <span class="token operator">=</span> <span class="token punctuation">[</span>_ <span class="token keyword">for</span> _ <span class="token keyword">in</span> counter_list <span class="token keyword">if</span> _<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">!=</span> <span class="token string">""</span><span class="token punctuation">]</span>
labels <span class="token operator">=</span> <span class="token punctuation">[</span>_<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> counter_list<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
values <span class="token operator">=</span> <span class="token punctuation">[</span>_<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> counter_list<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
<span class="token keyword">if</span> max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token operator"><</span><span class="token number">10</span><span class="token punctuation">:</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>subplot<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> x<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>barh<span class="token punctuation">(</span>labels<span class="token punctuation">,</span>values<span class="token punctuation">,</span> color <span class="token operator">=</span> colours<span class="token punctuation">[</span>x<span class="token number">-1</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xticks<span class="token punctuation">(</span>values_int<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>title<span class="token punctuation">(</span>country<span class="token punctuation">)</span>
x<span class="token operator">+=</span><span class="token number">1</span>
plt<span class="token punctuation">.</span>suptitle<span class="token punctuation">(</span><span class="token string">'Popular Directors with the most content'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>tight_layout<span class="token punctuation">(</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
b. Popular actors:
col <span class="token operator">=</span> <span class="token string">"cast"</span>
n class="token keyword">with plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
figure<span class="token punctuation">(</span>num<span class="token operator">=</span>None<span class="token punctuation">,</span> figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
x<span class="token operator">=</span><span class="token number">1</span>
<span class="token keyword">for</span> country <span class="token keyword">in</span> countries_list<span class="token punctuation">:</span>
df<span class="token punctuation">[</span><span class="token string">"from_country"</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'country'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>fillna<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">.</span>apply<span class="token punctuation">(</span><span class="token keyword">lambda</span> x <span class="token punctuation">:</span> <span class="token number">1</span> <span class="token keyword">if</span> country<span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">in</span> x<span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">else</span> <span class="token number">0</span><span class="token punctuation">)</span>
small <span class="token operator">=</span> df<span class="token punctuation">[</span>df<span class="token punctuation">[</span><span class="token string">"from_country"</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">]</span>
cast <span class="token operator">=</span> <span class="token string">", "</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>small<span class="token punctuation">[</span><span class="token string">'cast'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>fillna<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">", "</span><span class="token punctuation">)</span>
tags <span class="token operator">=</span> Counter<span class="token punctuation">(</span>cast<span class="token punctuation">)</span><span class="token punctuation">.</span>most_common<span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">)</span>
tags <span class="token operator">=</span> <span class="token punctuation">[</span>_ <span class="token keyword">for</span> _ <span class="token keyword">in</span> tags <span class="token keyword">if</span> <span class="token string">""</span> <span class="token operator">!=</span> _<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
labels<span class="token punctuation">,</span> values <span class="token operator">=</span> <span class="token punctuation">[</span>_<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token string">" "</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> tags<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span>_<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> tags<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
<span class="token keyword">if</span> max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token operator"><</span><span class="token number">10</span><span class="token punctuation">:</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span>
<span class="token keyword">elif</span> max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token operator">>=</span><span class="token number">10</span> <span class="token operator">and</span> max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token operator"><=</span><span class="token number">20</span><span class="token punctuation">:</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>subplot<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> x<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>barh<span class="token punctuation">(</span>labels<span class="token punctuation">,</span>values<span class="token punctuation">,</span> color <span class="token operator">=</span> colours<span class="token punctuation">[</span>x<span class="token number">-1</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xticks<span class="token punctuation">(</span>values_int<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>title<span class="token punctuation">(</span>country<span class="token punctuation">)</span>
x<span class="token operator">+=</span><span class="token number">1</span>
plt<span class="token punctuation">.</span>suptitle<span class="token punctuation">(</span><span class="token string">'Popular Actors with the most content'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>tight_layout<span class="token punctuation">(</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
5. Some of the Oldest Movies and TV Shows
I thought it would be quite interesting to look at the oldest movies and TV shows that are available on Netflix and how far back they’re dated.
a. Oldest movies:
small <span class="token operator">=</span> df<span class="token punctuation">.</span>sort_values<span class="token punctuation">(</span><span class="token string">"release_year"</span><span class="token punctuation">,</span> ascending <span class="token operator">=</span> <span class="token boolean">True</span><span class="token punctuation">)</span>
all <span class="token operator">=</span> small<span class="token punctuation">[</span>small<span class="token punctuation">[</span><span class="token string">'duration'</span><span class="token punctuation">]</span> <span class="token operator">!=</span> <span class="token string">""</span><span class="token punctuation">]</span><span class="token punctuation">.</span>reset_index<span class="token punctuation">(</span><span class="token punctuation">)</span>
all<span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token string">"release_year"</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token number">15</span><span class="token punctuation">]</span>
b. Oldest TV shows:
small <span class="token operator">=</span> df<span class="token punctuation">.</span>sort_values<span class="token punctuation">(</span><span class="token string">"release_year"</span><span class="token punctuation">,</span> ascending <span class="token operator">=</span> <span class="token boolean">True</span><span class="token punctuation">)</span>
all <span class="token operator">=</span> small<span class="token punctuation">[</span>small<span class="token punctuation">[</span><span class="token string">'season_count'</span><span class="token punctuation">]</span> <span class="token operator">!=</span> <span class="token string">""</span><span class="token punctuation">]</span><span class="token punctuation">.</span>reset_index<span class="token punctuation">(</span><span class="token punctuation">)</span>
all <span class="token operator">=</span> small<span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token string">"release_year"</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token number">15</span><span class="token punctuation">]</span>
all
Woah, Netflix has some realllyyy old movies and TV shows — some even released more than 80 years ago. Have you watched any of these?
(Fun fact: when he began implementing Python, Guido van Rossum was also reading the published scripts from “Monty Python’s Flying Circus,” a BBC comedy series from the 1970s (that was added on Netflix in 2018). Van Rossum thought he needed a name that was short, unique, and slightly mysterious, so he decided to call the language Python.)
6. Does Netflix Have the Latest Content?
Yes, Netflix is cool and all for having content from a century ago, but does it also have the latest movies and TV shows? To find this out, first I calculated the difference between the date on which the content was added to Netflix and the release year of that content.
df<span class="token punctuation">[</span><span class="token string">"year_diff"</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">"year_added"</span><span class="token punctuation">]</span><span class="token operator">-</span>df<span class="token punctuation">[</span><span class="token string">"release_year"</span><span class="token punctuation">]</span>
Then, I created a scatter plot with x-axis as the year difference and y-axis as the number of movies/TV shows:
col <span class="token operator">=</span> <span class="token string">"year_diff"</span>
_movies <span class="token operator">=</span> df<span class="token punctuation">[</span>df<span class="token punctuation">[</span><span class="token string">"duration"</span><span class="token punctuation">]</span><span class="token operator">!=</span><span class="token string">""</span><span class="token punctuation">]</span>
_shows <span class="token operator">=</span> df<span class="token punctuation">[</span>df<span class="token punctuation">[</span><span class="token string">"season_count"</span><span class="token punctuation">]</span><span class="token operator">!=</span><span class="token string">""</span><span class="token punctuation">]</span>
ped1 <span class="token operator">=</span> only_movies<span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">.</span>value_counts<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>reset_index<span class="token punctuation">(</span><span class="token punctuation">)</span>
ped1 <span class="token operator">=</span> grouped1<span class="token punctuation">.</span>rename<span class="token punctuation">(</span>columns <span class="token operator">=</span> <span class="token punctuation">{</span>col <span class="token punctuation">:</span> <span class="token string">"count"</span><span class="token punctuation">,</span> <span class="token string">"index"</span> <span class="token punctuation">:</span> col<span class="token punctuation">}</span><span class="token punctuation">)</span>
ped1 <span class="token operator">=</span> grouped1<span class="token punctuation">.</span>dropna<span class="token punctuation">(</span><span class="token punctuation">)</span>
ped1 <span class="token operator">=</span> grouped1<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token number">20</span><span class="token punctuation">)</span>
ped2 <span class="token operator">=</span> only_shows<span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">.</span>value_counts<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>reset_index<span class="token punctuation">(</span><span class="token punctuation">)</span>
ped2 <span class="token operator">=</span> grouped2<span class="token punctuation">.</span>rename<span class="token punctuation">(</span>columns <span class="token operator">=</span> <span class="token punctuation">{</span>col <span class="token punctuation">:</span> <span class="token string">"count"</span><span class="token punctuation">,</span> <span class="token string">"index"</span> <span class="token punctuation">:</span> col<span class="token punctuation">}</span><span class="token punctuation">)</span>
ped2 <span class="token operator">=</span> grouped2<span class="token punctuation">.</span>dropna<span class="token punctuation">(</span><span class="token punctuation">)</span>
ped2 <span class="token operator">=</span> grouped2<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token number">20</span><span class="token punctuation">)</span>
n class="token keyword">with plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
figure<span class="token punctuation">(</span>num<span class="token operator">=</span>None<span class="token punctuation">,</span> figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>scatter<span class="token punctuation">(</span>grouped1<span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">,</span> grouped1<span class="token punctuation">[</span><span class="token string">"count"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> color <span class="token operator">=</span> <span class="token string">"hotpink"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>scatter<span class="token punctuation">(</span>grouped2<span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">,</span> grouped2<span class="token punctuation">[</span><span class="token string">"count"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> color <span class="token operator">=</span> <span class="token string">'#88c999'</span><span class="token punctuation">)</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>grouped1<span class="token punctuation">[</span>col<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xticks<span class="token punctuation">(</span>values_int<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xlabel<span class="token punctuation">(</span><span class="token string">"Difference between the year when the content has been\n added on Netflix and the realease year"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>ylabel<span class="token punctuation">(</span><span class="token string">"Number of Movies/TV Shows"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>legend<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">"Movies"</span><span class="token punctuation">,</span> <span class="token string">"TV Shows"</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>tight_layout<span class="token punctuation">(</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
As you can see in the visualization above, the majority of the content on Netflix has been added within a year of its release date. So, Netflix does have the latest content most of the time!
If you’re still here, here’s an xkcd comic for you. You’re welcome.
7. What Kind of Content Is Netflix Focusing on?
I also wanted to explore the rating column and compare the amount of content that Netflix has been producing for kids, teens, and adults — and if their focus has shifted from one group to the other over the years.
To achieve this, first I took a look at the unique ratings in the DataFrame:
<span class="token keyword">print</span><span class="token punctuation">(</span>df<span class="token punctuation">[</span><span class="token string">'rating'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>unique<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
Output:
<span class="token punctuation">[</span><span class="token string">'TV-MA'</span> <span class="token string">'R'</span> <span class="token string">'PG-13'</span> <span class="token string">'TV-14'</span> <span class="token string">'TV-PG'</span> <span class="token string">'NR'</span> <span class="token string">'TV-G'</span> <span class="token string">'TV-Y'</span> nan <span class="token string">'TV-Y7'</span> <span class="token string">'PG'</span> <span class="token string">'G'</span> <span class="token string">'NC-17'</span> <span class="token string">'TV-Y7-FV'</span> <span class="token string">'UR'</span><span class="token punctuation">]</span>
Then, I classified the ratings according to the groups (namely Little Kids, Older Kids, Teens and Mature) they fall into and changed their values in the rating column to their group names.
ratings_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'TV-MA'</span><span class="token punctuation">,</span> <span class="token string">'R'</span><span class="token punctuation">,</span> <span class="token string">'PG-13'</span><span class="token punctuation">,</span> <span class="token string">'TV-14'</span><span class="token punctuation">,</span> <span class="token string">'TV-PG'</span><span class="token punctuation">,</span> <span class="token string">'TV-G'</span><span class="token punctuation">,</span> <span class="token string">'TV-Y'</span><span class="token punctuation">,</span> <span class="token string">'TV-Y7'</span><span class="token punctuation">,</span> <span class="token string">'PG'</span><span class="token punctuation">,</span> <span class="token string">'G'</span><span class="token punctuation">,</span> <span class="token string">'NC-17'</span><span class="token punctuation">,</span> <span class="token string">'TV-Y7-FV'</span><span class="token punctuation">]</span>
ngs_group_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'Little Kids'</span><span class="token punctuation">,</span> <span class="token string">'Older Kids'</span><span class="token punctuation">,</span> <span class="token string">'Teens'</span><span class="token punctuation">,</span> <span class="token string">'Mature'</span><span class="token punctuation">]</span>
ngs_dict<span class="token operator">=</span><span class="token punctuation">{</span>
<span class="token string">'TV-G'</span><span class="token punctuation">:</span> <span class="token string">'Little Kids'</span><span class="token punctuation">,</span>
<span class="token string">'TV-Y'</span><span class="token punctuation">:</span> <span class="token string">'Little Kids'</span><span class="token punctuation">,</span>
<span class="token string">'G'</span><span class="token punctuation">:</span> <span class="token string">'Little Kids'</span><span class="token punctuation">,</span>
<span class="token string">'TV-PG'</span><span class="token punctuation">:</span> <span class="token string">'Older Kids'</span><span class="token punctuation">,</span>
<span class="token string">'TV-Y7'</span><span class="token punctuation">:</span> <span class="token string">'Older Kids'</span><span class="token punctuation">,</span>
<span class="token string">'PG'</span><span class="token punctuation">:</span> <span class="token string">'Older Kids'</span><span class="token punctuation">,</span>
<span class="token string">'TV-Y7-FV'</span><span class="token punctuation">:</span> <span class="token string">'Older Kids'</span><span class="token punctuation">,</span>
<span class="token string">'PG-13'</span><span class="token punctuation">:</span> <span class="token string">'Teens'</span><span class="token punctuation">,</span>
<span class="token string">'TV-14'</span><span class="token punctuation">:</span> <span class="token string">'Teens'</span><span class="token punctuation">,</span>
<span class="token string">'TV-MA'</span><span class="token punctuation">:</span> <span class="token string">'Mature'</span><span class="token punctuation">,</span>
<span class="token string">'R'</span><span class="token punctuation">:</span> <span class="token string">'Mature'</span><span class="token punctuation">,</span>
<span class="token string">'NC-17'</span><span class="token punctuation">:</span> <span class="token string">'Mature'</span>
n class="token punctuation">}
n class="token keyword">for rating_val<span class="token punctuation">,</span> rating_group <span class="token keyword">in</span> ratings_dict<span class="token punctuation">.</span>items<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
df<span class="token punctuation">.</span>loc<span class="token punctuation">[</span>df<span class="token punctuation">.</span>rating <span class="token operator">==</span> rating_val<span class="token punctuation">,</span> <span class="token string">"rating"</span><span class="token punctuation">]</span> <span class="token operator">=</span> rating_group
Finally, I made line plots with year on the x-axis and content count on the y-axis.
df<span class="token punctuation">[</span><span class="token string">'rating_val'</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token number">1</span>
an class="token operator">=<span class="token number">0</span>
ls<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">'kinda\nless'</span><span class="token punctuation">,</span> <span class="token string">'not so\nbad'</span><span class="token punctuation">,</span> <span class="token string">'holyshit\nthat\'s too\nmany'</span><span class="token punctuation">]</span>
n class="token keyword">with plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">for</span> r <span class="token keyword">in</span> ratings_group_list<span class="token punctuation">:</span>
grouped <span class="token operator">=</span> df<span class="token punctuation">[</span>df<span class="token punctuation">[</span><span class="token string">'rating'</span><span class="token punctuation">]</span><span class="token operator">==</span>r<span class="token punctuation">]</span>
year_df <span class="token operator">=</span> grouped<span class="token punctuation">.</span>groupby<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'year_added'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span>sum<span class="token punctuation">(</span><span class="token punctuation">)</span>
year_df<span class="token punctuation">.</span>reset_index<span class="token punctuation">(</span>level<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">,</span> inplace<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>plot<span class="token punctuation">(</span>year_df<span class="token punctuation">[</span><span class="token string">'year_added'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> year_df<span class="token punctuation">[</span><span class="token string">'rating_val'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> color<span class="token operator">=</span>colours<span class="token punctuation">[</span>x<span class="token punctuation">]</span><span class="token punctuation">,</span> marker<span class="token operator">=</span><span class="token string">'o'</span><span class="token punctuation">)</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">2008</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>year_df<span class="token punctuation">[</span><span class="token string">'year_added'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>yticks<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token number">200</span><span class="token punctuation">,</span> <span class="token number">600</span><span class="token punctuation">,</span> <span class="token number">1000</span><span class="token punctuation">]</span><span class="token punctuation">,</span> labels<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xticks<span class="token punctuation">(</span>values_int<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>title<span class="token punctuation">(</span><span class="token string">'Count of shows and movies that Netflix\n has been producing for different audiences'</span><span class="token punctuation">,</span> fontsize<span class="token operator">=</span><span class="token number">12</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xlabel<span class="token punctuation">(</span><span class="token string">'Year'</span><span class="token punctuation">,</span> fontsize<span class="token operator">=</span><span class="token number">14</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>ylabel<span class="token punctuation">(</span><span class="token string">'Content Count'</span><span class="token punctuation">,</span> fontsize<span class="token operator">=</span><span class="token number">14</span><span class="token punctuation">)</span>
x<span class="token operator">+=</span><span class="token number">1</span>
plt<span class="token punctuation">.</span>legend<span class="token punctuation">(</span>ratings_group_list<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>tight_layout<span class="token punctuation">(</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
Okay, so the data in this visualization shows us that the content count for mature audiences on Netflix is way higher than the other groups. Another interesting observation is that there was a surge in the count of content produced for Little Kids from 2019–2020, whereas the content for Older Kids, Teens, and Mature Audiences decreased during that time period.
8. Top Genres (Countrywise)
col <span class="token operator">=</span> <span class="token string">"listed_in"</span>
urs <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"violet"</span><span class="token punctuation">,</span> <span class="token string">"cornflowerblue"</span><span class="token punctuation">,</span> <span class="token string">"darkseagreen"</span><span class="token punctuation">,</span> <span class="token string">"mediumvioletred"</span><span class="token punctuation">,</span> <span class="token string">"blue"</span><span class="token punctuation">,</span> <span class="token string">"mediumseagreen"</span><span class="token punctuation">,</span> <span class="token string">"darkmagenta"</span><span class="token punctuation">,</span> <span class="token string">"darkslateblue"</span><span class="token punctuation">,</span> <span class="token string">"seagreen"</span><span class="token punctuation">]</span>
tries_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"United States"</span><span class="token punctuation">,</span> <span class="token string">"India"</span><span class="token punctuation">,</span> <span class="token string">"United Kingdom"</span><span class="token punctuation">,</span> <span class="token string">"Japan"</span><span class="token punctuation">,</span> <span class="token string">"France"</span><span class="token punctuation">,</span> <span class="token string">"Canada"</span><span class="token punctuation">,</span> <span class="token string">"Spain"</span><span class="token punctuation">,</span> <span class="token string">"South Korea"</span><span class="token punctuation">,</span> <span class="token string">"Germany"</span><span class="token punctuation">]</span>
n class="token keyword">with plt<span class="token punctuation">.</span>xkcd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
figure<span class="token punctuation">(</span>num<span class="token operator">=</span>None<span class="token punctuation">,</span> figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
x<span class="token operator">=</span><span class="token number">1</span>
<span class="token keyword">for</span> country <span class="token keyword">in</span> countries_list<span class="token punctuation">:</span>
df<span class="token punctuation">[</span><span class="token string">"from_country"</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'country'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>fillna<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">.</span>apply<span class="token punctuation">(</span><span class="token keyword">lambda</span> x <span class="token punctuation">:</span> <span class="token number">1</span> <span class="token keyword">if</span> country<span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">in</span> x<span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">else</span> <span class="token number">0</span><span class="token punctuation">)</span>
small <span class="token operator">=</span> df<span class="token punctuation">[</span>df<span class="token punctuation">[</span><span class="token string">"from_country"</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">]</span>
genre <span class="token operator">=</span> <span class="token string">", "</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>small<span class="token punctuation">[</span><span class="token string">'listed_in'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>fillna<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">", "</span><span class="token punctuation">)</span>
tags <span class="token operator">=</span> Counter<span class="token punctuation">(</span>genre<span class="token punctuation">)</span><span class="token punctuation">.</span>most_common<span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span>
tags <span class="token operator">=</span> <span class="token punctuation">[</span>_ <span class="token keyword">for</span> _ <span class="token keyword">in</span> tags <span class="token keyword">if</span> <span class="token string">""</span> <span class="token operator">!=</span> _<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
labels<span class="token punctuation">,</span> values <span class="token operator">=</span> <span class="token punctuation">[</span>_<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token string">" "</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> tags<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span>_<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token keyword">for</span> _ <span class="token keyword">in</span> tags<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
<span class="token keyword">if</span> max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token operator">></span><span class="token number">200</span><span class="token punctuation">:</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span>
<span class="token keyword">elif</span> max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token operator">></span><span class="token number">100</span> <span class="token operator">and</span> max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token operator"><=</span><span class="token number">200</span><span class="token punctuation">:</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">50</span><span class="token punctuation">,</span> <span class="token number">50</span><span class="token punctuation">)</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
values_int <span class="token operator">=</span> range<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>max<span class="token punctuation">(</span>values<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">25</span><span class="token punctuation">,</span> <span class="token number">25</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>subplot<span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> x<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>barh<span class="token punctuation">(</span>labels<span class="token punctuation">,</span>values<span class="token punctuation">,</span> color <span class="token operator">=</span> colours<span class="token punctuation">[</span>x<span class="token number">-1</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xticks<span class="token punctuation">(</span>values_int<span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>title<span class="token punctuation">(</span>country<span class="token punctuation">)</span>
x<span class="token operator">+=</span><span class="token number">1</span>
plt<span class="token punctuation">.</span>suptitle<span class="token punctuation">(</span><span class="token string">'Top Genres'</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>tight_layout<span class="token punctuation">(</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
Key takeaways from this plot:
-
Dramas and Comedies are the most popular genres in almost every country.
-
Japan watches a LOT of anime!
-
Romantic TV Shows and TV Dramas are big in South Korea. (I’m addicted to K-Dramas too, btw
)
-
Children and Family Movies are the third most popular genre in Canada.
9. Word Clouds
I finally ended the project with two word clouds — first, a word cloud for the description column and a second one for the title column.
a. Word Cloud for Description:
<span class="token keyword">from</span> wordcloud <span class="token keyword">import</span> WordCloud
pan class="token keyword">import random
pan class="token keyword">from PIL <span class="token keyword">import</span> Image
pan class="token keyword">import matplotlib
pan class="token comment" spellcheck="true"># Custom colour map based on Netflix palette
ap <span class="token operator">=</span> matplotlib<span class="token punctuation">.</span>colors<span class="token punctuation">.</span>LinearSegmentedColormap<span class="token punctuation">.</span>from_list<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'#221f1f'</span><span class="token punctuation">,</span> <span class="token string">'#b20710'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
xt <span class="token operator">=</span> str<span class="token punctuation">(</span>list<span class="token punctuation">(</span>df<span class="token punctuation">[</span><span class="token string">'description'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">','</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'['</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">"'"</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">']'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'.'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span>
sk <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span>Image<span class="token punctuation">.</span>open<span class="token punctuation">(</span><span class="token string">'../input/finallogo/New Note.png'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
rdcloud <span class="token operator">=</span> WordCloud<span class="token punctuation">(</span>background_color <span class="token operator">=</span> <span class="token string">'white'</span><span class="token punctuation">,</span> width <span class="token operator">=</span> <span class="token number">500</span><span class="token punctuation">,</span> height <span class="token operator">=</span> <span class="token number">200</span><span class="token punctuation">,</span>colormap<span class="token operator">=</span>cmap<span class="token punctuation">,</span> max_words <span class="token operator">=</span> <span class="token number">150</span><span class="token punctuation">,</span> mask <span class="token operator">=</span> mask<span class="token punctuation">)</span><span class="token punctuation">.</span>generate<span class="token punctuation">(</span>text<span class="token punctuation">)</span>
t<span class="token punctuation">.</span>figure<span class="token punctuation">(</span> figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
t<span class="token punctuation">.</span>imshow<span class="token punctuation">(</span>wordcloud<span class="token punctuation">,</span> interpolation <span class="token operator">=</span> <span class="token string">'bilinear'</span><span class="token punctuation">)</span>
t<span class="token punctuation">.</span>axis<span class="token punctuation">(</span><span class="token string">'off'</span><span class="token punctuation">)</span>
t<span class="token punctuation">.</span>tight_layout<span class="token punctuation">(</span>pad<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
t<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>

Live, love, life, friend, family, world, and find are some of the most frequent words to appear in the descriptions of movies and shows. Another interesting thing is that the words — one, two, three, and four — all appear in the word cloud.
b. Word Cloud for Title
cmap <span class="token operator">=</span> matplotlib<span class="token punctuation">.</span>colors<span class="token punctuation">.</span>LinearSegmentedColormap<span class="token punctuation">.</span>from_list<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'#221f1f'</span><span class="token punctuation">,</span> <span class="token string">'#b20710'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
xt <span class="token operator">=</span> str<span class="token punctuation">(</span>list<span class="token punctuation">(</span>df<span class="token punctuation">[</span><span class="token string">'title'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">','</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'['</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">"'"</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">']'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'.'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span>
sk <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span>Image<span class="token punctuation">.</span>open<span class="token punctuation">(</span><span class="token string">'../input/finallogo/New Note.png'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
rdcloud <span class="token operator">=</span> WordCloud<span class="token punctuation">(</span>background_color <span class="token operator">=</span> <span class="token string">'white'</span><span class="token punctuation">,</span> width <span class="token operator">=</span> <span class="token number">500</span><span class="token punctuation">,</span> height <span class="token operator">=</span> <span class="token number">200</span><span class="token punctuation">,</span>colormap<span class="token operator">=</span>cmap<span class="token punctuation">,</span> max_words <span class="token operator">=</span> <span class="token number">150</span><span class="token punctuation">,</span> mask <span class="token operator">=</span> mask<span class="token punctuation">)</span><span class="token punctuation">.</span>generate<span class="token punctuation">(</span>text<span class="token punctuation">)</span>
t<span class="token punctuation">.</span>figure<span class="token punctuation">(</span> figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
t<span class="token punctuation">.</span>imshow<span class="token punctuation">(</span>wordcloud<span class="token punctuation">,</span> interpolation <span class="token operator">=</span> <span class="token string">'bilinear'</span><span class="token punctuation">)</span>
t<span class="token punctuation">.</span>axis<span class="token punctuation">(</span><span class="token string">'off'</span><span class="token punctuation">)</span>
t<span class="token punctuation">.</span>tight_layout<span class="token punctuation">(</span>pad<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
t<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>
Do you see Christmas right at the center of this word cloud? Seems like there is an abundance of Christmas movies on Netflix. Other popular words are Love, World, Man, Life, Story, Live, Secret, Girl, Boy, American, Game, Night, Last, Time, and Day.
And that’s it!
It just took me a few hours to complete this project, and I am now able to see everything that Netflix does in a new way. I think this is the funnest project I’ve done so far, and I’d definitely like to expand on this by building a recommendation system next. Working on projects like these reminds me that data science really is so cool.I hope this project and all the comical data visualization examples using Matplotlib gives you inspiration for your projects as well.
If you have any questions/feedback or would just like to chat, you can reach out to me on Twitter or LinkedIn.
What Can You Do to Learn How to Use Matplotlib for Data Visualization?
- Learn how to use Matplotlib with our data visualization fundamentals course
- Learn how to communicate insights with our storytelling data visualization and information design course
You can also check out the lessons below to:
- Learn how to use matplotlib to create line graphs to analyze data.
- Learn how to generate a scatter plot using Matplotlib
- Learn how to generate a bar plot and histograms using Matplotlib
This article was contributed by Paridhi Agarwal in the Dataquest Community. You can find Paridhi on LinkedIn and Twitter.