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

640?wx_fmt=png

pyecharts可视化

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

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

  • 操作简单

  • 图表美观

  • 图表类型多样

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

640?wx_fmt=png

基本图表使用

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

640?wx_fmt=png

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

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

640?wx_fmt=png

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

640?wx_fmt=png

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

 
 
  1. from pyecharts import Pie


  2. pie = Pie("男女分布", title_pos='center')

  3. pie.add(

  4. "",

  5. ['外星人','男性','女性'],

  6. list(sex),

  7. radius=[40, 75],

  8. label_text_color=None,

  9. is_label_show=True,

  10. legend_orient="vertical",

  11. legend_pos="left",

  12. )

  13. pie

640?wx_fmt=png

词云图

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

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

 
 
  1. str_data = ''

  2. for i in range(new_data.shape[0]):

  3. str_data = str_data + new_data.iloc[i,4]

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

 
 
  1. import jieba.analyse

  2. tags = jieba.analyse.extract_tags(str_data, topK=50, withWeight=True)


  3. label = []

  4. attr = []

  5. for item in tags:

  6. print(item[0]+'\t'+str(int(item[1]*1000)))

  7. label.append(item[0])

  8. attr.append(int(item[1]*1000))

最后进行绘制即可。

 
 
  1. from pyecharts import WordCloud


  2. wordcloud = WordCloud(width=800, height=620)

  3. wordcloud.add("", label[4:], attr[4:], word_size_range=[20, 100])

  4. wordcloud

640?wx_fmt=png

地图绘制

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

 
 
  1. pip install echarts-countries-pypkg

  2. pip install echarts-china-provinces-pypkg

  3. pip install echarts-china-cities-pypkg

  4. pip install echarts-china-counties-pypkg

  5. pip install echarts-china-misc-pypkg

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

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

最后,可视化地图即可。

 
 
  1. from pyecharts import Map


  2. value = list(province)

  3. attr = list(province.index)

  4. map = Map("好友地区分布", width=1200, height=600)

  5. map.add(

  6. "",

  7. attr,

  8. value,

  9. maptype="china",

  10. is_visualmap=True,

  11. visual_text_color="#000",

  12. )

  13. map

640?wx_fmt=png

今日互动

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值