以下为本次数据分析可视化的全部包
import os
import math
from PIL import Image
from pyecharts.charts import Pie
from pyecharts.charts import Bar
from pyecharts.charts import WordCloud
#用于设值全局配置和系列配置
from pyecharts import options as opts
import csv
import xlrd
import re
import jieba
from snownlp import SnowNLP
import matplotlib.pyplot as plt
import numpy as np
from pyecharts.charts import Graph
from collections import Counter
from pyecharts.charts import Map
from pyecharts.charts import Geo
from pyecharts.charts import Gauge
from pyecharts.charts import Liquid
以下为本次数据分析可视化的所有文件
以下为分布代码,以及实现的功能:
'''
例子1:饼状图统计好友男女比例
'''
# 1.1 读取csv文件,把性别信息读取出来
def getSex(filename):
lstsex = []
with open(filename,'r') as fr:
reader = csv.reader(fr)
for i in reader:
lstsex.append(i[4])
return lstsex
# 1.2 性别pyecharts可视化
def VisualSexpyechart(lstsex):
sex = dict()
# 2.1 提取好友性别信息,从1开始,因为第0个是自己
for f in lstsex[1:]:
if f == '1': # 男
sex['man'] = sex.get('man',0) + 1
elif f== '2': # 女
sex['women'] = sex.get('women',0) + 1
else: # 未知
sex['unknown'] = sex.get('unknown',0) + 1
# 在屏幕上打印出来
total = len(lstsex[1:])
# 2.2打印出自己的好友性别比例
print("男性好友:%.2f%%" %(float(sex['man']) / total*100) + '\n' + "女性好友:%.2f%%" %(float(sex['women']) / total*100) +
"不明性别好友:%.2f%%" %(float(sex['unknown']) / total*100))
# 2.3使用pyecharts饼状图
attr = ['男性好友','女性好友','不明性别好友']
value = [sex['man'],sex['women'],sex['unknown']]
# 饼图用的数据格式是[(key1,value1),(key2,value2)],所以先使用 zip函数将二者进行组合
data_pair = [list(z) for z in zip(attr, value)]
# 初始化配置项,内部可设置颜色
(
Pie(init_opts=opts.InitOpts(bg_color="white"))
.add(
# 系列名称,即该饼图的名称
series_name="性别分析",
# 系列数据项,格式为[(key1,value1),(key2,value2)]
data_pair=data_pair,
# 通过半径区分数据大小 “radius” 和 “area” 两种
rosetype='',
# 饼图的半径,设置成默认百分比,相对于容器高宽中较小的一项的一半
radius="55%",
# 饼图的圆心,第一项是相对于容器的宽度,第二项是相对于容器的高度
center=["50%", "50%"],
# 标签配置项
label_opts=opts.LabelOpts(is_show=True, position="center"),
)
# 全局设置
.set_global_opts(
# 设置标题
title_opts=opts.TitleOpts(
# 名字
title="微信好友性别比例",
# 组件距离容器左侧的位置
pos_left="center",
# 组件距离容器上方的像素值
pos_top="20",
# 设置标题颜色
title_textstyle_opts=opts.TextStyleOpts(color="black"),
),
# 图例配置项,参数 是否显示图里组件
legend_opts=opts.LegendOpts(is_show=True),
)
# 系列设置
.set_series_opts(
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
),
# 设置标签颜色
label_opts=opts.LabelOpts(color="black"),
)
.render('好友性别比例.html')
)
# 1.3 性别pyecharts 柱状图可视化
def VisualSexpyechart2(lstsex):
sex = dict()
# 2.1 提取好友性别信息,从1开始,因为第0个是自己
for f in lstsex[1:]:
if f == '1': # 男
sex['man'] = sex.get('man', 0) + 1
elif f == '2': # 女
sex['women'] = sex.get('women', 0) + 1
else: # 未知
sex['unknown'] = sex.get('unknown', 0) + 1
# 在屏幕上打印出来
total = len(lstsex[1:])
# 2.2打印出自己的好友性别比例
print(
"男性好友:%.2f%%" % (float(sex['man']) / total * 100) + '\n' + "女性好友:%.2f%%" % (
float(sex['women']) / total * 100) + '\n' +
"不明性别好友:%.2f%%" % (float(sex['unknown']) / total * 100))
# 2.3使用pyecharts饼状图
attr = ['男性好友', '女性好友', '不明性别好友']
value = [sex['man'], sex['women'], sex['unknown']]
# # 饼图用的数据格式是[(key1,value1),(key2,value2)],所以先使用 zip函数将二者进行组合
# data_pair = [list(z) for z in zip(attr, value)]
# 初始化配置项,内部可设置颜色
bar = (
Bar()
.add_xaxis(attr)
.add_yaxis("amount", value, color='green')
.set_global_opts(
title_opts=opts.TitleOpts(title='微信数据分析'),
yaxis_opts=opts.AxisOpts(name="amount"),
xaxis_opts=opts.AxisOpts(name="sex")
)
).render('好友性别比例2.html')
'''
例子2:柱状图学生省份和城市分析
'''
# 2.1读取省份信息
def getProvince(filename):
Province1 = {}
Province2 &