爬虫数据分析-----matplotlib图形展示

之前有一篇关于爬虫的博客,今天写一篇对数据的处理操作的文章。这里只是选取了部分电影信息做参考(可以将数据库信息导出,转为json格式—容易处理,如果你有耐心可以将其改为文本文件,但是处理起来非常麻烦,也没能那个必要,哈哈…),电影信息包括(id,name,type,country,language,releasetime,ranking)。
因为时间有限,所以只做了下图中的的饼图“类型占比”和柱状图“type”(色彩可能会略有不适),另外两个当作参考,随便写的。

在这里插入图片描述

代码:

import matplotlib.pyplot as plt
import numpy as np

# 1.线图
# figure
figure = plt.figure()
subplot = figure.add_subplot(2, 2, 1)
subplot.plot(np.arange(0, 100), np.arange(1, 101))

# 2.柱状图
subplot2 = figure.add_subplot(2, 2, 2)
data = np.array(((1, '奔腾年代', '剧情片', '美国', '英语', '2003', 4.0), 
				 (2, '逃出珊瑚海', '恐怖片', '香港', '国语', '1986', 4.0),
                 (3, '甜蜜的谎言', '喜剧片', '韩国', '韩语', '2008', 10.0),
                 (4, '他乡的童年', '电影', '大陆', '国语', '2019', 9.0),
                 (5, 'WiFi过敏的少女', '喜剧片', 'None', 'None', '2018', 3.0), 
                 (6, '回到过去拥抱你', '爱情片', '大陆', '国语', '2019', 3.0),
                 (7, '血胎换骨', '电影', '香港', 'None', '2009', 4.0),
                 (8, '伟大的转折1946', '电影', 'None', 'None', '1946', 8.0),
                 (9, '七月与安生', '电影', '大陆', 'None', '2016', 7.6), 
                 (10, '降龙祖师', '喜剧片', '大陆', '国语', '2019', 2.0),
                 (11, '我亲爱的表哥', '剧情片', 'None', 'None', '2019', 9.0), 
                 (12, '地狱男爵:血皇后崛起', '动作片', '美国', '英语', '2019', 1.0),
                 (13, '疾速备战', '动作片', '美国', '英语', '2019', 4.0), (14, '金手套', '恐怖片', '其它', '德语', '2019', 10.0),
                 (15, '永不退缩3', '电影', '美国', '英语', '2016', 5.9), (16, '永不退缩2', '电影', '美国', 'None', '2011', 4.0),
                 (17, '珍珍的发屋', '剧情片', '大陆', '国语', '未知', 7.0), (18, '拯救爱情', '剧情片', '大陆', '国语', '2001', 4.0),
                 (19, '闯江湖', '剧情片', '大陆', '国语', '1984', 3.0), (20, '疯狂粉丝王', '喜剧片', '香港', '粤语', '2007', 6.0),
                 (21, '夜幕猎人', '动作片', '美国', '英语', '2018', 8.0), (22, '我的心里住着一只猫', '爱情片', '大陆', '国语', '2019', 10.0),
                 (23, '重金属', '电影', '香港', 'None', '1994', 8.0), (24, '竹升妹之以牙还牙', '电影', '香港', 'None', '1996', 4.0),
                 (25, '预言者', '电影', '法国', 'None', '2009', 3.0), (26, '诉讼2018', '剧情片', '美国', '英语', '2018', 10.0),
                 (27, '草叶集', '剧情片', '韩国', '韩语', '2018', 1.0), (28, '姐姐2019', '动作片', '韩国', '韩语', '2019', 10.0),
                 (29, '长安诡事之末世神兵', '动作片', '大陆', '国语', '2019', 10.0), 
                 (30, '学园爆笑王', '喜剧片', '日本', '日语', '2019', 9.0),
                 (31, '使徒行者2:谍影行动', '剧情片', '大陆', '粤语', '2019', 4.0), (32, '马大姐', '恐怖片', '美国', '英语', '2019', 1.0),
                 (33, '隔墙有鬼', '恐怖片', '美国', '英语', '2018', 4.0), (34, '伟大的转折1946', '电影', 'None', 'None', '1946', 8.0),
                 (35, '永不退缩2', '电影', '美国', 'None', '2011', 4.0), (36, '重金属', '电影', '香港', 'None', '1994', 8.0),
                 (37, '竹升妹之以牙还牙', '电影', '香港', 'None', '1996', 4.0), (38, '预言者', '电影', '法国', 'None', '2009', 3.0),
                 (39, '奔腾年代', '剧情片', '美国', '英语', '2003', 4.0), (40, '逃出珊瑚海', '恐怖片', '香港', '国语', '1986', 4.0),
                 (41, '甜蜜的谎言', '喜剧片', '韩国', '韩语', '2008', 10.0), (42, '他乡的童年', '电影', '大陆', '国语', '2019', 9.0)))

data1 = data.T
print(data1)

xlabel  = data1[2]
print(data)


# 统计剧情片
new1 = (data=="剧情片")
juqingpian = np.sum(new1)

# 统计恐怖片
new2 = (data=="恐怖片")
kongbupian = np.sum(new2)

# 统计爱情片
new3 = (data=="爱情片")
aiqingpian = np.sum(new3)

# 统计动作片
new4 = (data=="动作片")
dongzuopian = np.sum(new4)

# 统计喜剧片
new5 = (data=="喜剧片")
xijupian = np.sum(new5)

# 统计'电影'
new6 = (data=="电影")
dianying = np.sum(new6)

xlist = ["plot","horror","comedy","film","romantic","actioner"]
ylist = [juqingpian,kongbupian,xijupian,dianying,aiqingpian,dongzuopian]

x = [i for i in np.array(xlist)]
y = [i for i in np.array(ylist)]
# y = data1[0]
print(x)
print(y)

bars  = subplot2.bar(x,y,width=0.3)

# subplot2 = figure.add_subplot(2, 2, 2).subplot()
subplot2.set_ylabel('total-number')
subplot2.set_xlabel('type',bbox=dict(facecolor='y', edgecolor='red', alpha=0.65 ))

subplot2.set_xticks(x)
subplot2.set_xticklabels(x)

# subplot2.title('Type - Film')
subplot2.grid(linestyle='--')

# 设置颜色
i = 0
for bar in bars:
    bar.set_color('#'+str(205001+i))
    i += 119500

for x,y in zip(x,y):
    subplot2.text(x,y,'%s'% np.float(y),ha="center",va="bottom")

# 3.饼图

# 用来正常显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 用来正常显示符号
plt.rcParams['axes.unicode_minus'] = False
subplot3 = figure.add_subplot(2, 2, 3)

x = [i for i in np.array(xlist)]
y = [i for i in np.array(ylist)]

data = [temp for temp in (np.array(y) / np.sum(np.array(y)))]
print(data,'666')
labels = ['%.2f %%' % (x*100) for x in data]

subplot3.pie(data,colors=['#50F4FF','#14FF4C',
                    '#FF120C','#DC460C',
                     '#2365E1','#FFFF5A'],labels=labels)

plt.title('类型占比',bbox=dict(facecolor='y', edgecolor='red', alpha=0.65 ))

# 4.点图
subplot4 = figure.add_subplot(2, 2, 4)
x = np.random.randint(1, 100, 100)
y = np.random.randint(1, 100, 100)

subplot4.scatter(x, y, s=30, c=x, alpha=0.8, marker='*')
plt.show()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章