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 年一起搞事情.
来源: http://www.jianshu.com/p/d90d1fc996a6