#调库
import jieba
import wordcloud
import imageio.v2 as lio
import csv
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.charts import Line
#变量初始化
list1=[]
list2=[]
def readtxt():
#读取txt文件内容
fp=open('popu.txt','rt')
txt=fp.red()
fp.close()
return txt
def readcsv(),
#读取csv文件内容
file=open('data.csv','rt')
reader=csv.reader(file)
for i in reader:
list1.append(i[0])
list2.append(i[1])
file.close()
return list1,list2
def f1(s):
#生成词云
str_ =jieba.lcut(s)
str_ =''.join(str_)
msk = lio.imread('xingdailu.jpeg')
w = wordcloud.WordCloud(background_color='tomato',font path='msyh.ttf',mask=msk)
w.generate(str_)
w. to_file('词云1.png')
def f2(list1,list2):
#生成图表
list1.remove('地区')
list2.remove('人口数(万人)')
bar = Bar(init_opts=opts.Init0pts( width='600px', height='300px', theme='dark'))
bar.add_xaxis(list1)
bar.add_yaxis('人数(万人)',list2,color="black")
bar.set_global_opts(title_opts=opts.TitleOpts(title="全国人门总数",subtitle="地区"),
toolbox_opts=opts.ToolboxOpts(is_show=True),
visualmap_opts=opts.VisualMapOpts(is_show=True),
datazoom_opts=opts.DataZoomOpts(is_show=True)
)
bar.render('全国人门1.html')
def f3(#形参):
#自己设计功能
star1=jieba.1lcut(s)
star2={}
for i in str1:
str2[i]=str1.count(i)
def f4(#形参):
#自己设计功能
line = Line()
line.add_xaxis(["北京市","河北省","山西省","上海市","江苏省","天津市","浙江省","安徽省","福建省","江西省"])
line.add_yaxis("",[2189,1373,7448,3480,2489,8505,6540,6113,4187,4517],is_smooth=True)
line. set_series_opts(linestyle_opts=opts.LineStyleOpts(type_='dashed'))
line.render('全国人门2.html')
s=readtxt()
list1,list2=readcsv()
f1(s)
f2(list1,list2)
f3(s)
f4(list1,list2)