此项目为中大南方18级Python课程期末项目,与17级合作完成。
项目内容为通过使用Python完成数据处理、可视化操作,并部署于PythonAnywhere上展示。
- 背景故事
- 可视化数据
- 相关分析/总结
- 数据故事
用户选择相关主题,并点击提交,网页即呈现对应主题的内容以及分析、故事。
通过用户选择进行交互数据的筛选,并刷新页面呈现对应的结果页面(pythonanywhere加载巨慢)。
list4=[]
for i in range(len(num_count)):
list4.append(num_count[i])
list4.append(num_count[i])
list4.append(num_count[i])
list4.append(num_count[i])
list4.append(num_count[i])
list4.append(num_count[i])
................
## 得出最有可能导致压力的6个因素
element = list(set(most['分类']))
......
元组嵌套列表。
## 呈现问题表格
data_pie1 = data_pie.T.to_html()
pie1_list = [num for num in data_pie['分类']]
labels = [index for index in data_pie.index]
### 设置扇形图下拉框
...........
提取 ‘索引’ 和 ‘num’ 中一列的数据。
## 图表2
the_element3 = request.form['the_element3_selected']
print(the_element3)
element3_available = element3
if the_element3 =='压力较小':
the_level = 压力较小
elif the_element3 =='压力一般':
the_level = 压力一般
elif the_element3 =='压力较大':
the_level = 压力较大
else:
the_level = 压力很大
..........
判断用户的选择进而创建对应的图形。
return render_template('first.html',
the_title1 = title1,
the_select_element1 = element1_available,
the_data_pie1 = data_pie1,
the_plot_all = plot_all,
the_plot_all1 = plot_all1,
the_plot_all3 = plot_all3,
.........
def pressure_most():
title1 = "您多久受到一次压力?"
## 扇形图分析
### 表格呈现数据
data_pie = pd.DataFrame(pressure2.loc['您多久受到一次压力?']['分类'].value_counts())
## 呈现问题表格
data_pie1 = data_pie.T.to_html()
pie1_list = [num for num in data_pie['分类']]
labels = [index for index in data_pie.index]
.......
-
主运行文件为
pressure.py
文件。 -
app.py
以及data.py
为调用文件。 -
example.html
系列文件为生成可视化图表的离线文件,作为引用文件。 -
' static ' 以及 ' templates ' 为网页样式以及模版。
-
其余为本项目引用的数据文档(xlxs/csv)。
用户可通过多种自定的选择跳转交互页面,查看进行数据筛选后不同的内容。