越来越多的人意识到,我们一直在使用一个繁琐的,过时的绘图库 - matplotlib 。幸运的是,时代已经变了。在本文中,我们将介绍一个如何能在更短的时间内制作出更漂亮的,可以互动的图片工具Plotly - 通常情况下只需一行代码,即可完成任务。
编者话: 昨天在Medium上阅读了一篇Koehrsen发表的文章,题目是"The Next Level of Data Visualization in Python"。说实话,作为外貌协会的成员,我对那里面的代码并不感冒。但是文章里的那些漂亮的互动图,勾起了我的兴趣。兴奋之余,决定用我自己在36氪上发表的文章数据做一实验。
1. Python资料视觉化的主要套件
名称 | 优点 | 缺点 | 备注 |
---|---|---|---|
Matplotlib | 历史悠久,文档齐全,可以画多种表格 | 图表难看,指令复杂 | 现在跟Pandas整合在一起,外表有所改观。官网教学 |
Seaborn | 基于Matplot, 实现了更高层化的API,指令简单,图案漂亮 | 可完成大部分任务,但有些进阶图案需要Matplot来辅助完成。 | 官网教学 |
Plotly | 漂亮,互动,功能齐全,可建dashboard | 有时使用起来复杂,不完全开源,企业版要付费,比较吃电脑资源 | 官网教学 |
2. 数据
Koehrsen用了他在Medium 上所发表的文章的数据,他对其中的一些数据做了时间数列分析。比如说阅读量和阅读比例。在Medium上有一个统计,有时读者点击了,却不会真正去读这篇文章。所以阅读比例越高,笔者越会感到欣慰。为了学习Koehrsen的代码,我尝试用我自己的数据去探索一下。这些数据的变量包括(GitHub repo 链接, Jupyter Viewer):
ID | 文章名 | 有无播客 | 文章创立时间 | 发布时间 | 字数统计 | PC端流量 | 移动端流量 | 应用流量 | 阅读量 | 评论 | 收藏 | 点赞 |
注:由于部分数据缺失,我删除了一些变量名,比如文章类别,每片文章的新增粉丝,每天的阅读量及部分文章。值得指出的是,36氪的文章会被许多其他媒体转载,比如新浪博客,今日头条,人人都是产品经理等等。这里的阅读量并未包含转载部分的阅读量。好了,不多说,上代码及图片。
编辑中
待叙
# Data science imports
import pandas as pd
import numpy as np%load_ext autoreload
%autoreload 2# Options for pandas
pd.options.display.max_columns = 25# Display all cell outputs
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all'import plotly.plotly as py
import plotly.graph_objs as go
import plotly.figure_factory as ff
from plotly.offline import iplotimport cufflinks
cufflinks.go_offline()
"""