標籤:

IMDB票房信息數據分析

本次的實踐作業分析報告參考該kaggle上一位大神的數據分析報告 Exploratory Analysis | Kaggle

先安裝及運行一下包

library(plotly)

library(data.table)

library(formattable)

library(dplyr)

library(ggplot2)

電影院的數據表的名稱。

movie_title 電影標題

gross 總值

imdb_score 分數

plot_keywords 情節關鍵詞

director_name 導演的名字

genres 電影類型

facenumber_in_poster 上海報的電影

首先要對數據的足夠了解才能確定自己的分析目標腦子才清晰,,一開始就不看分析目標只看代碼也是一臉懵逼。好多kaggle大神寫的代碼書上的都還沒有看到的,剛剛開始學習和參考了小夥伴的了泰坦尼克號的數據分析,,一個一個代碼區敲,很多不懂的地方,敲一遍就可以理解大概,隨然是笨的辦法;但也是好的辦法有效形成腦迴路;

導入數據

movies <- read.csv(D:/rstudio/dianying/data/movie_metadata.csv,header=T,stringsAsFactors = F)

導演最多的電影的20位導演

顏色漸變

color_scheme = brewer.pal(8, "Blues")

#刷選director_name導演名字

director = movies[director_name]

# 計算導演的記錄頻數

director = data.frame(table(director))

# 按照次數最多的排序

director = director[order(director$Freq,decreasing=TRUE),]

# 去的沒有次數的導演

director = director[-c(1),]

# 前20名的導演 導演最多的電影的20位導演

ggplot(director[1:20,], aes(x=reorder(factor(director), Freq), y=Freq, alpha=Freq)) +geom_bar(stat = "identity", fill=color_scheme[8]) +xlab("Director") +ylab("Number of Movies") +ggtitle("Top 20 Directors with the most movies") +coord_flip()

電影海報上的數字面孔的分布

獲取上海報的次數,

poster = movies[facenumber_in_poster]

#海報記錄頻數

poster = data.frame(table(poster))

# 頻次排序

poster = poster[order(poster$Freq,decreasing=TRUE),]# Plot the face count occurences in postersggplot(poster, aes(x=reorder(factor(poster), Freq), y=Freq, alpha=Freq)) +geom_bar(stat = "identity", fill=color_scheme[8]) +xlab("Number of Faces on Movie Poster") +ylab("Frequency") +ggtitle("Distribution of the Number Faces on Movie Posters") +coord_flip()

最熱門的20種電影類型

# 刷選電影類型向量

genre = movies[genres]

# 頻次紀錄

genre = data.frame(table(genre))

# 從新排序次數多的排在前

genre = genre[order(genre$Freq,decreasing=TRUE),]

# 最熱門的20種電影類型

ggplot(genre[1:20,], aes(x=reorder(factor(genre), Freq), y=Freq, alpha=Freq)) +geom_bar(stat = "identity", fill=color_scheme[8]) +xlab("Genre") +ylab("Number of Movies") +ggtitle("Top 20 genres with the most movies") +coord_flip()

從1916到2016每一年的電影上線量

# There are some years that there was no data

選擇向量

year = movies[title_year]

計算頻次

year = data.frame(table(year))

year = year[order(year$year,decreasing=TRUE),]

# 從 1916到2016年上映的電影

ggplot(data=year, aes(x=year, y=Freq)) + geom_bar(colour = "black", fill = "blue", width = 0.8, stat="identity") + xlab("Year") + ylab("Count") + ggtitle("Number of Movies by Year") + scale_x_discrete(breaks = seq(1916, 2016, 5))

折線圖下這點圖顯示該趨勢 生活的水平提高。從90年代電影的上線趨勢一直在上升;

50大導演平均IMDB評分

50大導演平均IMDB評分

這裡還不是很理解 as.data.table

# IMDB Score Averages by Director

imdb_scores = as.data.table(subset(movies, movies$director_name != ))

imdb_scores = imdb_scores[, mean(imdb_score), by=director_name]

names(imdb_scores) = c("director", "Average_Score")

imdb_scores = imdb_scores[order(imdb_scores$Average_Score,decreasing=TRUE),]

imdb_scores

ggplot(imdb_scores[1:20,], aes(x=reorder(factor(director), Average_Score), y=Average_Score, alpha=Average_Score)) +

geom_bar(stat = "identity", fill=color_scheme[8]) +

xlab("Director") +

ylab("Average IMDB Score") +

ggtitle("Top 50 Director Average IMDB Scores") +

coord_flip()

推薦閱讀:

選全明星哪家強,機器學習來幫忙
挑戰自我-python數據分析師成長路徑
Kindle是否值得包月
數據篇(1):數據分析

TAG:數據分析 |