Beispiel #1
0
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
Beispiel #2
0
 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()
Beispiel #3
0
 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('词云图测试成功')
Beispiel #4
0
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")
Beispiel #6
0
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)
Beispiel #8
0
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()
Beispiel #9
0
#把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')
'''