之前有一篇关于爬虫的博客,今天写一篇对数据的处理操作的文章。这里只是选取了部分电影信息做参考(可以将数据库信息导出,转为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()