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年一起搞事情。
网友评论