Python有趣|数据可视化那些事(二)

作者: 罗罗攀 | 来源:发表于2019-03-30 10:04 被阅读39次
    pyecharts可视化

    上文我们使用了Excel可视化,绘制了一个伪《经济学人》图表,这种方法在一定程度上解决了pandas的缺陷:不美观,功能不强大。但其操作起来复杂,手残党表示最不喜欢这种操作了。

    所以本节将讲解一个Python第三方库(pyecharts),可以完美解决这些问题。现在公众号很多数据分析文章的图片,都是用其绘制的,最主要的原因就是:

    • 操作简单
    • 图表美观
    • 图表类型多样

    这个是pyecharts的中文文档(http://pyecharts.org/#/zh-cn/),本节将大概讲解pyecharts的使用,详情可参考官方文档(记得安装这个库)。依旧先上大纲:

    基本图表使用

    我们以微信好友信息为例(文末提供数据下载)。

    我们通过groupby函数,查看性别分布。

    sex = data.groupby('Sex')['Sex'].count()
    

    我们这里使用饼图,我们打开中文文档,找到饼图,这里有详细的参数设置和案例,我们只需要跟着案例,改成自己的数据即可。

    可以看到,其实我们只需要修改attr和v1就可以了,这里的attr改为list(sex.index)(数据是列表结构),v1改为list(sex),但是这里的sex.index是0,1,2。所以我们手动定义attr即可完成。

    from pyecharts import Pie
    
    pie = Pie("男女分布", title_pos='center')
    pie.add(
        "",
        ['外星人','男性','女性'],
        list(sex),
        radius=[40, 75],
        label_text_color=None,
        is_label_show=True,
        legend_orient="vertical",
        legend_pos="left",
    )
    pie
    
    词云图

    词云图,绘制也是很简单的,但是我们需要对文本进行分词统计,这里就要使用jieba库了。

    首先,我们将个性签名那列的文本拼接起来。

    str_data = ''
    for i in range(new_data.shape[0]):
        str_data = str_data + new_data.iloc[i,4]
    

    然后用jieba(也是需要安装的)分词统计,得到数据。

    import jieba.analyse
    tags = jieba.analyse.extract_tags(str_data, topK=50, withWeight=True)
    
    label = []
    attr = []
    for item in tags:
        print(item[0]+'\t'+str(int(item[1]*1000)))
        label.append(item[0])
        attr.append(int(item[1]*1000))
    

    最后进行绘制即可。

    from pyecharts import WordCloud
    
    wordcloud = WordCloud(width=800, height=620)
    wordcloud.add("", label[4:], attr[4:], word_size_range=[20, 100])
    wordcloud
    
    地图绘制

    地图绘制也是很简单的,就是pyecharts不提供地图的文件包,我们必须先通过下面代码先安装,这样才可以显示地图。

    pip install echarts-countries-pypkg
    pip install echarts-china-provinces-pypkg
    pip install echarts-china-cities-pypkg
    pip install echarts-china-counties-pypkg
    pip install echarts-china-misc-pypkg
    

    我们依旧使用groupby函数处理数据。

    province = data.groupby('Province')['Province'].count()
    

    最后,可视化地图即可。

    from pyecharts import Map
    
    value = list(province)
    attr = list(province.index)
    map = Map("好友地区分布", width=1200, height=600)
    map.add(
        "",
        attr,
        value,
        maptype="china",
        is_visualmap=True,
        visual_text_color="#000",
    )
    map
    
    今日互动

    代码下载:https://github.com/panluoluo/crawler-analysis,下载完整数据和代码。

    留言打卡:pyecharts可视化的第一印象。公众号后台回复【打卡】,加入打卡学习群,2019年一起搞事情。

    相关文章

      网友评论

        本文标题:Python有趣|数据可视化那些事(二)

        本文链接:https://www.haomeiwen.com/subject/kdvyuqtx.html