干货分享 | 关于“Plotly”的可视化教程(一)

在谈到数据可视化的时候,相信大多数的读者会想到“matplotlib”、“pyecharts”等第三方模块,今天小编要介绍的可视化框架叫做“plotly”,通过构建基于HTML的交互式图表来显示信息,可创建各种形式的精美图表。当然,除了“plotly”这个模块,本文也会提到“cufflinks”也就是对“plotly”模块封装过之后的模块,相当于是“seaborn”之于“matplotlib”的关系。

01

下载与导入数据

下载安装相关的库,通过“pip”命令行即可实现,

!pip install plotly

导入相关的模块并读取数据,并对可视化做一定的设置

# plotly standard imports
import plotly.graph_objs as go
import chart_studio.plotly as py


# Cufflinks wrapper on plotly
import cufflinks
# Data science imports
import pandas as pd


from plotly.offline import iplot
cufflinks.go_offline()


# Set global theme
cufflinks.set_config_file(world_readable=True, theme='pearl')


df = pd.read_parquet('medium_data_2019_01_06')

02

直方图

我们先从简单的画直方图开始,代码如下

df['claps'].iplot(kind='hist', xTitle='claps',
                  yTitle='count', title='Claps Distribution')

这和大家之前使用“matplotlib”模块十分的想类似,我们只好需要用“iplot”而不是“plot”即可,最后显示的直方图在交互性上面、以及美观程度有着显著的提升,同时我们能够对数据进行放大,看到更加具体的数据走势

上面的可视化结果是对单个变量的走势的,当然要是我们觉得直方图中图形的颜色线条的粗细不是很满意的时候,我们也可以通过其中的几个参数来进行调整

df['claps'].iplot(kind='hist', xTitle='claps',
                  yTitle='count', title='Claps Distribution',
                  width = 2, colors = 'lightblue')

结果如下图所示

当然我们也可以将两个变量一起来做直方图的可视化,例如下面的代码

df['time_started'] = df['started_date'].apply(to_time)
df['time_published'] = df['published_date'].apply(to_time)


df[['time_started', 'time_published']].iplot(
    kind='hist',
    linecolor='black',
    bins=24,
    histnorm='percent',
    bargap=0.1,
    opacity=0.8,
    barmode='group',
    xTitle='Time of Day',
    yTitle='(%) of Articles',
    title='Time Started and Time Published')

我们来看一下最后出来的效果如何,下图分别四两个类别的直方图

03

箱型图

除了直方图之外,箱型图在统计分析的过程中也被经常地使用,透过箱型图,我们能够直观地识别出数据中的异常值,以及直观地判断数据离散分布情况,了解数据分布状态,它的代码如下

df[df['read_time'] <= 10].pivot(
        columns='read_time', values='reads').iplot(
        kind='box', colorscale='set2',
        xTitle='Read Time',
        yTitle='Number of Reads',
        title='Box Plot of Reads by Reading Time')

而最后出来的结果

箱型图出来的结果我们可以看到其中的异常值中位数、以及上四分位数下四分位数,十分地直观明了。对于交互性的可视化绘制结果来说,我们能够放大看到数据集中的一部分数据,更加清楚地看到里面的分布。

04

折线图

尤其是在时间序列的问题上,折线图就显得十分的实用了,能够从中看出趋势,看出数据的走势等等,例如如下数据集

tds = df[df['publication'] == 'Towards Data Science'].set_index('published_date')

我们先从一个变量的折线图的绘制开始说起,代码如下

tds['read_time'].iplot(
    mode='lines+markers',
    opacity=0.8,
    size=8,
    symbol=1,
    xTitle='Date',
    yTitle='Read Time (min)',
    title='Read Time Trends')

最后出来的结果正如下面所示

正如直方图中,可以针对两个变量来进行可视化,折线图也亦是如此,我们来看一下“fans”和“claps”这两列在时间的不断推进过程中,走势是如何发生变化的,代码如下,几乎和上面的单个变量的可视化代码十分地类似

tds[['claps', 'fans']].iplot(
    mode='lines+markers',
    opacity=0.8,
    size=8,
    symbol=1,
    xTitle='Date',
    yTitle='Fans and Claps',
    title='Fans and Claps over Time')

最后出来的效果如下图所示

05

未完待续

当然在本文当中小编只是例举了几个用“plotly”做的比较常见的图形,除了上面的几种图形之外,还有其他的例如散点图、饼图、水平柱状图、热力图等等就在下一篇文章中再具体说明,希望大家能够有所收获

分享几个常用的Python函数,助你快速成为Pandas大神!!

Python数据分析来解析,2021年度最具“钱景”的大学专业

Python分析热门话题“不生孩子的人后来都怎么了”,看看丁克家庭最后都怎么样了

点点分享

点点赞

点点在看

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值