目录
引言 2
1.1 编写目的 2
1.2 读者对象 2
1.3 软件项目概述 2
1.4 文档概述 2
1.5 定义 2
1.6 参考资料 3
软件的一般性描述 4
2.1软件产品与其环境之间的关系 4
2.2限制与约束 4
2.3假设与前提条件 4
3.功能需求描述 5
3.1系统的划分 5
3.2 数据爬取子系统的功能 6
3.2.1 数据爬取的用例图 6
3.2.2 数据爬取用例的描述 7
3.3 数据可视化子系统的功能 7
3.3.1 数据可视化子系统的用例图 7
3.3.2 数据可视化子系统的用例描述 其一 9
3.3.3 数据可视化子系统的用例描述 其二 10
3.4 数据库系统的功能 11
3.4.1 数据库系统的用例图 11
3.4.2 数据库系统用例的描述 12
其它需求描述 13
4.1 性能要求 13
4.2 设计约束 13
4.3 界面要求 13
4.4 进度要求 13
4.5 交付要求 13
4.6 验收要求 13
软件原型 14
附录 19
引言
1.1 编写目的
使读者能够了解MOVA项目的概况
1.2 读者对象
电影行业从业人员、电影爱好者
1.3 软件项目概述
项目名称:Movie Visualization Analysis system (MOVA)
用户单位:个人用户
开发单位:HITSZSE_group10
功能用途:本文转载自http://www.biyezuopin.vip/onews.asp?id=14764数据查询、图表生成及导出
1.4 文档概述
文档中包含引言、软件一般性描述以及需求描述
1.5 定义
暂无
1.6 参考资料
暂无
软件的一般性描述
2.1软件产品与其环境之间的关系
外部用户:MOVA的目标客户
外部系统:Windows 及 OS X
2.2限制与约束
MOVA中的电影数据的时间跨度为2015.1.1-2018.11.30
2.3假设与前提条件
MOVA中的电影数据均来自于豆瓣电影及猫眼电影,以猫眼电影为主
用户对电影数据的需求较新,由2015年开始。
from django.shortcuts import render
from PIL import Image
import pyecharts
# Create your views here.
# 绘制pyecharts图表的类
class VisualizationChart:
def __init__(self, title, data_name, x_axis, y_axis, chart_name):
self.title = title
self.data_name = data_name
self.x_axis = x_axis
self.y_axis = y_axis
# self.chart_name = './frontend/src/diagrams/' + chart_name
self.chart_name = './frontend/dist/static/' + chart_name
def histogram(self):
bar = pyecharts.Bar(self.title, background_color='#fff')
# 绘制TOP电影票房柱状图时,因为电影名称较长,所以需要旋转标签值,才可显示所有的电影名称
if '电影票房TOP' in self.title:
bar.add("", self.x_axis, self.y_axis, xaxis_interval=0, xaxis_rotate=20)
else:
bar.add(self.data_name, self.x_axis, self.y_axis)
save_file_name = self.chart_name + '_bar.png'
bar.render(path=save_file_name)
def line(self):
# line = pyecharts.Line(self.title, width=400, height=200, title_text_size=10)
line = pyecharts.Line(self.title, background_color='#fff')
# 绘制电影票房趋势图有多条折线
for (name, y) in zip(self.data_name, self.y_axis):
# line.add(name, self.x_axis, y, xaxis_label_textsize=8, yaxis_label_textsize=8, legend_text_size=6, legend_pos='40%')
line.add(name, self.x_axis, y)
save_file_name = self.chart_name + '_line.png'
line.render(path=save_file_name)
def pie(self):
pie = pyecharts.Pie(self.title, background_color='#fff')
pie.add("", self.x_axis, self.y_axis, legend_orient="vertical", legend_pos="right")
save_file_name = self.chart_name + '_pie.png'
pie.render(path=save_file_name)
def word_cloud(self):
wordcloud = pyecharts.WordCloud(self.title, background_color='#fff')
wordcloud.add("", self.x_axis, self.y_axis, shape='diamond')
save_file_name = self.chart_name + '_wordcloud.png'
wordcloud.render(path=save_file_name)