Data Study on the colors in movie posters

Posted on Feb 25, 2016
The skills the author demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
Contributed by Amy(Yujing) Ma. She is currently in the NYC Data Science Academy 12 week full time Data Science Bootcamp program taking place between January 11th to April 1st, 2016. This post is based on her third class project – Web scraping(due on the 6th week of the program).

Amy Ma

January 30, 2016

Each movie has their own posters. Even in today’s always-online climate, data shows the movie poster remains a powerful form of advertising. Every movie poster has its own color scheme, based on the movie’s type, content, and tone. Best movie posters should catch people’s eyes. So what kinds of colors are more likely to be used in different types of movies?

To play with some plots in this post, please go to the related post on  Rpubs.

Scrapping Images with Python

To answer this question, we need analysis movie posters of different movies. First of all, we need to build a training dataset of movie posters. So, I used the Bing Image search engine for this.

Data Study on the colors in movie posters

By using python to scrape all the movie posters from the website, I finally got 112 photos for 4 types of movies (horror, comedy, animation and action movies).

Data Study on the colors in movie posters

And the part of images I got looks like this:

Data Study on the colors in movie posters

Transforming the Images

To extract the color of images, we need to represent them in an easier and numerical way: Converting one image to a matrix of RGB pixels. For example, for a 200x200 px image, we convert it to a series of 40,000 RGB pixels.To maintain the size of the dataset, I resized the images down to 200x200.


Extract Colors from Posters

Then I used k-means clustering to do image segmentation, separate the pixels into different clusters based on their colors. Here is an example of image segmentation and compression from Bishop’s book Pattern Recognition and Machine Learning.

I used python to do the k-means analysis, the code is shown as below:

I tried k=3, k=5, and k=10 since lots of the movie posters used black letters and frames, k=3 and k=5 didn’t capture the main colors of posters. I chose k=10 to do k-means to all these 112 images. Finally, I got 1,120 colors of 112 movie posters

Part of the result shown as blow:





This result shows one of the weaknesses of k-means clustering, it’s sensitive to initialization, which leads to unwanted solutions. In this poster, K-means couldn’t capture any gold or orange colors.



3D Scatterplots

For each type of movies, I plot its movie posters’ colors into a 3D scatterplot based on RGB values. Each point represents a poster color. By comparing these 4 plots, I found most of the horror movies use darker and red colors in their own posters while the comedy and the animation movies would choose various colors to correspond to their themes.

Comedy vs. Animation

Screen Shot 2016-02-25 at 5.16.42 PM

Action vs. Horror


Screen Shot 2016-02-25 at 5.17.08 PM

Transforming the Colors

1120 colors contribute to many to discover the specific patterns, so we need to reduce the number of colors and make them into several categories. For this, we can transform the colors into Lab color space, and use Delta E equations and colormath package in python to calculate the visual difference between poster colors and some basic colors.

Then I categorized these colors into 17 colors by choosing the smallest distance value in each row.

This is a part of the dataset of comedy movie posters:

Screen Shot 2016-02-25 at 5.47.02 PM

Comparison based on Movie Types

After transforming the data, I counted a number of each basic color within each movie type.

Screen Shot 2016-02-25 at 5.48.15 PM

By plotting the data together, we would confirm our previous findings and also we can see black, gray and white are most frequent used colors in movie posters. This is because I have the too small sample size of basic colors, and most the movie posters have black titles and frames.

About Author

Related Articles

Leave a Comment

Google January 2, 2021
Google Very couple of sites that occur to be detailed below, from our point of view are undoubtedly very well really worth checking out.
Google December 18, 2020
Google Always a massive fan of linking to bloggers that I adore but don’t get a whole lot of link appreciate from.
Google September 17, 2019
Google One of our visitors recently proposed the following website.
Google September 17, 2019
Google Below you will locate the link to some internet sites that we assume it is best to visit.
mma clothes October 10, 2016
I really like your writing style, excellent info, appreciate it for putting up :D.
leg length discrepancy and Achilles September 23, 2016
I do aϲcept aas tгue with alⅼ oof the ideas you've offered for yoᥙг post. They aгe very convincing and can certainly work. Stіll, the posts are very sɦort for starters. May just yoս please prolong tgem a little ffom next time? Thanks for the post.
【Python】爬虫+ K-means 聚类分析电影海报主色-多维数 September 21, 2016
[…] 原文链接:… […]
toe caps September 12, 2016
I do acϲept as true witɦ all thee concepts you haᴠᥱ offеred for your post. They are ѵeгy convincіng and will certainly work. Still, the posts are too brief for novices. May just үou please lengthen them a bit froom next time? Thank you for the post.
【Python】爬虫+ K-means 聚类分析电影海报主色-再深一点 August 17, 2016
[…] 原文链接:… […]
WillieRat June 6, 2016
Che Zhao March 6, 2016
Cool. Maybe you can simply set some thresholds to discard those too dark or bright colors.
【Python】爬虫 K-means聚类分析电影海报主色调 - IT大道 March 4, 2016
[…] 原文链接:…原文作者:Amy (YuJing)Ma译者:数据工匠 […]
【Python】爬虫+ K-means 聚类分析电影海报主色 | 36大数据 March 2, 2016
[…] 原文链接:… […]
【Python】爬虫+K-means聚类分析电影海报主色调-数据分析网 March 1, 2016
[…] 原文链接:… 原文作者:Amy 译者:Fibears […]
【Python】爬虫+ K-means 聚类分析电影海报主色调 - IT大道 March 1, 2016
[…] 原文链接:… […]

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI