def create_welfare(data, title): page = Page() style = Style(width=1000, height=500, background_color='#c4ccd3') kwargs = dict(shape='circle', title_pos="center") welfare_chart = WordCloud(title, **style.init_style) attr, value = welfare_chart.cast(data) welfare_chart.add("", attr, value, **kwargs) page.add(welfare_chart) return page
def _requests_show(self): word_cloud = WordCloud("技能要求云图", width=1300, height=620, title_pos='center') attr, value = word_cloud.cast(self.g.requests_data) word_cloud.add("", attr, value, word_size_range=[20, 100], shape='diamond') return word_cloud.render_embed()
def wordcloudtest(self): from pyecharts import WordCloud import random wd = WordCloud('回帖数词云图') key, value = wd.cast(self.wordcloud) shapes = [ 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star' ] wd.add('', key, value, shape=shapes[0]) wd.render('wordcloudtest.html') print('词云图测试成功')
def create_clound_charts(data, title): '''词云图''' page = Page() # print(data) style = Style( width=2000, height=1000, title_pos="center", ) chart = WordCloud(title, **style.init_style) attr, value = chart.cast(data) chart.add("", attr, value, shape='circle') page.add(chart) return page
def wordcloud(): """词云图""" # 读取处理数据 wordcloud_sql = "select content from maoyan_wumingzhibei WHERE movie_name='无名之辈'" wordcloud_data = DataBase().create(wordcloud_sql) wordcloud_list = [ re.sub(r'[ /….,!。?\n]', '', "".join(i)) for i in wordcloud_data ] data_dict = dict(Counter(wordcloud_list)) # 生成图表 wordcloud = WordCloud(width=1300, height=620) attr, value = wordcloud.cast(data_dict) wordcloud.add("", attr, value, word_size_range=[30, 90], is_more_utils=True) wordcloud.render("词云图.html")
myFriendsList = itchat.get_friends() #获取微信中的好友列表 signatureCounter = Counter() #生成一个Counter对象,后续用于词频的计数 for friend in myFriendsList: signature = friend['Signature'] signature = signature.strip().replace('emoji', '').replace('class', '').replace( 'span', '') #替换好友签名中表情的代码文本 tags = jieba.analyse.extract_tags(signature) #利用jieba分词,统计词频 for tag in tags: signatureCounter[tag] += 1 tagsList = signatureCounter.most_common(200) #选出分词后词频最高的200个词 wordCloud = WordCloud('你的微信好友签名云图', width=1200, height=600, title_pos='center') #生成一个词云图对象,用于绘制词云图,在这里设置标题、高度宽度和位置 attr, value = wordCloud.cast(tagsList) '''利用pyecharts的cast方法将字典列表转换成两个列表用于绘图 例: tagsList = [{'周一':3},{'周二':2},{'周三':1}] 用cast方法获得 attr = ['周一','周二','周三'] value = [3,2,1] ''' wordCloud.add( '', attr, value, shape='star', ) '''设置词云图属性,将分词列列表和词频列表添加进入 设置词云图形状为'start'
print(data[data['bathroom_num'].isin(['8', '9', '10'])]) # data['rent_price_listing'].apply(get_aver) def get_city_zf_loc(city, city_short, col=['longitude', 'latitude', 'dist'], data=data): file_name = 'data_' + city_short + '_latlon.csv' data_latlon = data.loc[data['city'] == city, col].dropna(subset=['latitude', 'longitude']) data_latlon['longitude'] = data_latlon['longitude'].astype(str) data_latlon['latitude'] = data_latlon['latitude'].astype(str) data_latlon['latlon'] = data_latlon['longitude'].str.cat(data_latlon['latitude'], sep=',') data_latlon.to_csv(file_name, index=False) print(city + '的数据一共有{}条'.format(data_latlon.shape[0])) get_city_zf_loc('北京', 'bj', ['longitude','latitude', 'dist']) get_city_zf_loc('上海', 'sh', ['longitude','latitude', 'dist']) get_city_zf_loc('广州', 'gz', ['longitude','latitude', 'dist']) # get_city_zf_loc('深圳', 'sz', ['longitude','latitude', 'dist']) fig = plt.figure(dpi=300) data.dropna(subset=['latitude', 'longitude'])[data['city']=='北京']['dist'].value_counts(ascending=True).plot.barh() from scipy import stats from pyecharts import WordCloud bj_tag = [] for st in data[data['city']=='北京'].dropna(subset=['house_tag'])['house_tag']: bj_tag.extend(st.split(' ')) name, value = WordCloud.cast(collections.Counter(bj_tag)) wordcloud = WordCloud(width=500, height=500) wordcloud.add("", name, value, word_size_range=[20, 100]) print(wordcloud)
def create_clound_charts(data, title): '''词云图''' page = Page() # print(data) style = Style( width=1400, height=700, title_pos="center", ) chart = WordCloud(title, **style.init_style) attr, value = chart.cast(data) chart.add("", attr, value, shape='circle') page.add(chart) return page # if __name__ == '__main__': # # 用于测试 # data = {'杭州': 5, '上海': 5, '深圳': 10, '厦门': 5, '广州': 15, '北京': 35, '东莞': 1, '苏州': 3, '西安': 4, '重庆': 8, '长沙': 3, # '武汉': 3} # ''' # data = {'金融央企,五险一金': 4, '大平台,氛围好': 1, '五险一金,补充医疗险,带薪年假,弹性工作': 1, '平台好,技术新,大牛多': 1, '靠谱团队,项目给力,福利多多': 1, # '带薪年假,定期体检,五险一金,福利多多': 7, '七险一金,弹性工作,免费三餐,扁平管理': 1, '百万Dau,免费3餐,千万流量,微服务': 1, '五险一金,双休,班车接送,免费早餐': 1, # '出国旅游,免费健身,股票期权,带薪年假': 1, '福利好,工作氛围好,发展平台大': 1, '福利好,大牛多': 1, '五险一金,季度旅游,生日会,带薪年假': 1, # '五险一金,季度旅游,节日福利,带薪年假': 1, '大牛多,快速发展期,业务好,17薪': 1, '时间自由,技术先进,区块链,一年多薪': 1, '双休,过节费,年度体检,旅游': 1, # '福利多多,带薪年假,定期体检,五险一金': 1, '五险一金,弹性工作制,绩效奖金,零食福利多': 1, '五险一金,餐补,生日会,优秀团队': 1, '纯纯技术团,魅力领导,带薪年假,周末双休': 1, # '牛人云集,能源互联网': 1, '13薪,年终奖,公司福利好,公司氛围好': 1, '期权激励,D轮融资,行业第一,技术牛人多': 1, '精英团队、股票期权,购房贷款、丰厚奖金': 1, # 'pytho,技术驱动': 1, '技术培养,能力提升,培养计划,福利好': 1, '上市公司,项目大,福利多多,周末双休': 1, '国际产品,大牛亲带,带薪年假,开放办公': 1, # 'IT互联网,平台大,发展好': 1, '高级': 9, '六险一金,弹性不打卡,高成长团队': 1, '环境好,待遇好,旅游,奖金': 1, '上市公司,节日福利,话费补贴,五险一金': 1, # '全五险一金,牛人多,发展快,福利好': 1, '五险一金,带薪年假,弹性工作,氛围自由': 1, '无人驾驶,车厂合作,扁平化管理,股票期权': 1, '上市公司,福利齐全,年终奖丰厚': 1, # '前景好,福利好,区块链': 1, '人工智能,弹性工作,扁平管理,技术牛人': 1, '牛人多,发展空间大,氛围轻松': 1, '五险一金,扁平化管理,地铁周边,团建': 1, # '晋升机会,全栈发展,工作餐,周末双休': 1, '管吃管住、顶级投资、原始股权奖励': 1, '五险一金,试用不打折,免费班车,员工旅游': 1, 'AI最前线,技术领先,科研创新,全额福利': 1, # '腾讯公有云,新技术': 1, '项目大,平台优,技术新,发展好': 1, '晋升空间大、福利好': 1, '亿级用户,准备上市,技术氛围,不加班': 1, '六险一金,年终奖,双休,法定年假': 1, # '绩效奖金,带薪年假': 1, '五险一金,周末双休,绩效奖金,弹性工作': 2, '极客文化,数字货币,弹性工作,上班不打卡': 1, '大数据、人工智能': 1, # '年终奖,免费工作餐,五险一金,高端医疗': 1, '行业第一,技术导向,海量用户,超强团队': 10, '五险一金;弹性工作;餐补;定期体检': 1, '周末双休 免费体检 员工旅游 五险一金': 1, # '期权,弹性时间,大牛多': 1, '股票期权,弹性工作制,行业龙头,地铁周边': 1, '15天年假,5天病假,年终多薪,公司前景': 1, '股票期权,五险一金,交补餐补,零食水果': 1, # '一日三餐,六险一金,14薪,定期团建': 1, '提供住宿,一日三餐,五险一金,晋升空间': 1, '氛围和谐,技术大佬,定期团建,发展空间大': 1, # '六险一金,弹性工作,免费三餐,租房补贴,带薪休假,休闲下午茶,扁平管理,健身瑜伽,过亿用户,职业大牛,晋升空间,团队氛围好,优厚薪资': 1, '大牛云集,人工智能,扁平管理': 1, # '五险一金,绩效奖金,技术大牛多,团队年轻化': 1, '人工智能,前景广阔,福利齐全,技术领先': 1, '人工智能,黑科技,大牛多': 1, '五险一金,大平台': 1, '五险一金,双休,餐补,氛围好': 1, # '氛围好,领导好,环境佳,机会多': 1, '商业保险,年度旅游,带薪年病假,弹性工作': 1, '发展空间大,机遇挑战多,待遇优厚': 1, '提供住宿,一日三餐,晋升空间,紫牛基金投': 1, # '定期培训,一对一导师,AI技术,优质项目': 1, '一日三餐、带薪年假、弹性工作、六险一金': 1, '餐补+年终奖+良好的晋升空间': 1, '不限量零食,福利多多,年终奖,办公环境好': 1, # '弹性工作 福利优厚 补充医疗 定期体检': 1, '上市公司,五险一金,薪酬福利好,发展空间大': 1, '15薪': 1, '技术驱动,极客氛围,大牛团队': 1, # '带薪年假,六险一金,期权股票,大牛多多': 1, '上市公司,弹性工作制,大牛多,发展空间大': 1, '5天8小时,薪资福利好': 1, '时间自由,技术先进,区块链': 1, '靠地铁,不加班,有期权': 1, # '临近地铁,大牛团队,六险一金,年终奖': 1, '平均16薪,扁平化管理,弹性工作,福利好': 4, '团队大牛多,福利待遇优': 1, '五险一金,免费午餐,饮料零食,团建、旅游': 1, # '人工智能,扁平管理,晋升空间大': 1, '带薪年假,六险一金,弹性工作,股票期权': 1, '期权激励、年度旅游、年终丰厚、零食水果': 1, '发展空间,大牛交流,五险一金,福利补贴': 1, # '双休,提成,带薪休假,五险一金': 1, '双休,带薪年假,年度旅游,五险一金': 5, '发展空间大 期权激励 弹性工作': 1, '大牛带你飞,零食不断,过亿用户': 1, # '朝阳行业,平台广阔,技术大牛,福利丰厚': 1, 'JAVA': 1, '周末双休,五险一金,节日福利,提供食宿': 1, '五险一金,待遇丰厚': 1, '核心业务,角色重要,成长空间大': 1, # '一流的平台+迷之福利+丰厚奖金': 1, '弹性': 1, '五险一金,绩效奖金,免费早餐,交补餐补': 1, '弹性工作,五险一金,扁平管理,家属福利': 1, '福利好、待遇好、上市公司': 1, # '大平台,加班少,成长快,学院派': 1, '平台大,发展前景好,五险一金,周末双休': 1, '仿真模型,六险一金,节日福利,法定假期': 1, '五险一金,弹性工作,办公环境好,年底双薪': 1, # '五险一金、14薪/年、下午茶、工作餐等等': 1, '上市公司,福利多多,项目大,五险一金': 1, '六险两金,年度体检,绩效奖金,渠道晋升': 1, '五险一金,弹性工作,团队融洽,环境优美': 1, # '绩效奖金 年终奖金 交通补贴 餐饮补贴': 7, '年度旅游,互联网平台,硬科技,弹性上班时': 1, '牛人云集,优质福利': 1, '员工旅游 员工体检 五险一金': 1, # '氛围好,发展快,领导好,空间大': 1, '五险一金,年度体检,年度旅游,年终福利': 1, '平台大,发展前景好,五险一金,资深团队': 1, '年轻团队,扁平管理,弹性工作,简单透明': 1, # '扁平化管理,发展空间大,产品有竞争,氛围融洽': 1, '游戏分红,期权,牛人带!': 1, '五险一金,周末双休,工作餐,氛围好': 1, '六险一金,年度旅游,项目奖金': 1, '工程师文化': 1, # '后端开发,大数据,工程': 1, '商业保险,弹性工作,零食水果,扁平管理': 1, '大咖云集,技术氛围好': 1, '最高19薪 独角兽公司 学习型团队': 1, # '提供住宿,一日三餐,晋升空间,五险一金': 1, '平台好,空间大': 1, '发展前景大、工作氛围好、技术牛人多': 1, '高并发,高流量,技术成长快,世界级产品': 1, # '五险一金,提供住宿,员工旅游': 1, '五险一金,股票期权,年终奖金,员工旅游': 1, '各项补贴 带薪年病假 弹性上下班': 1, '氛围好,技术大牛': 1, # '工作氛围好,专业培训,发展空间大,上市公司': 1} # ''' # create_map_charts(data, '地区分布').render() # create_clound_charts(data, 'title').render() # create_EffectScatter_charts(data, 'title').render()
#把a换成bin_bj.index不知道为什么就错了 line = Line("距离地铁远近跟每平米租金均价的关系") for city, bin_data in {'北京':bin_bj, '上海':bin_sh, '广州':bin_gz, '深圳':bin_sz}.items(): #print(city) line.add(city, a, bin_data.values, legend_text_size=18,xaxis_label_textsize=14,yaxis_label_textsize=18, xaxis_rotate=20, yaxis_min=8, legend_top=30) line.render(r'E:\vscode_code\GitHub项目\interesting_python\北上广房源\距离地铁远近跟每平米租金均价的关系.html') """ #点云数据 #北上广深租房时都看重什么 bj_tag = [] for st in data[data['city'] == '北京'].dropna(subset=['house_tag'])['house_tag']: #split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串 #house_tag标签里面有对房间的具体要求,包含很多空格,于是将它们分别提取出来 bj_tag.extend(st.split(' ')) #调试数据 #print(data[data['city']=='北京'].dropna(subset=['house_tag'])['house_tag'].sample(100)) #统计字符串中的字符数量用Counter函数 name, value = WordCloud.cast(Counter(bj_tag)) print(WordCloud.cast(Counter(bj_tag))) #print(Counter(bj_tag)) #print(name,'|',value) ''' wordcloud = WordCloud(width=500, height=500) wordcloud.add("", name, value, word_size_range=[20, 100]) wordcloud.render(r'E:\vscode_code\GitHub项目\interesting_python\北上广房源\标签.html') '''