当前位置: 首页 >> 国内时事 >> 勿忘我花语,茅山后裔,邳-华丽银行集团-最新集团新闻-国内时事热点 >> 正文

勿忘我花语,茅山后裔,邳-华丽银行集团-最新集团新闻-国内时事热点

2019年06月24日 12:17:14     作者:admin     分类:国内时事     阅读次数:178    


导读:怎么仅运用一行代码制造美丽、互动性强的图表?


作者:Will Koehrsen

译者:刘畅

修改:suiling

来历:Python大本营(ID:pythonnews)


程序员的淹没本钱论:淹没本钱谬论是人类许多的认知成见之一。它指的是咱们倾向于持续将时刻和资源投入到失掉的原因中,由于咱们现已花了许多时刻去寻求无用的作业。淹没本钱谬论适用于当咱们花了许多本钱也不会起作用的项目或作业。比方,当存在功率更高,互动性更强的挑选时,咱们依然持续运用Matplotlib。


在曩昔的几个月里,我认识到我运用Matplotlib的仅有原因是我花费了数百小时去学习它杂乱的语法。这种杂乱性让作者在StackOverflow上遭受了数小时的波折去弄清楚怎么格式化日期或增加第二个y轴。走运的是,在探究了一些选项后,一个在易用性,文档和功用方面明显的赢家是Plotly库。


在本文中,咱们将直接上手运用Plotly,学习怎么在更短的时刻内制造出更好的图表。


本文的悉数代码都能够在GitHub上找到:

https://github.com/WillKoehrsen/Data-Analysis


图表都是交互式的,能够在NBViewer上检查:

https://w.url.cn/s/ALOvpfv


▲运用Plotly制造的样例 



01 Plotly简介


Plotly Python包(https://plot.ly/python/)是一个根据plotly.js(https://plot.ly/javascript/)构建的开源库,而后者又建立在d3.js(https://d3js.org/)上。咱们将用一个名为cufflinks的封装器来运用Pandas数据。因而,咱们的整个仓库是cufflinks> plotly> plotly.js> d3.js,这意味着咱们能够经过d3的交互式图形功用去取得Python编码的功率。


Plotly自身便是一家具有多种产品和开源东西的图形公司。其Python版别的库能够免费运用,咱们能够在离线形式下创立无限的图表,在线形式下最多能够创立25个图表,用于同享。


本文中的悉数作业都是运用Jupyter notebook完结的,其间的plotyl+cuffilinks能够在离线形式下运转。 在运用pip指令安装了plotly和cufflinks之后,在Jupyter中运转以下指令:


# Standard plotly imports
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode
# Using plotly + cufflinks in offline mode
import cufflinks
cufflinks.go_offline(connected=True)
init_notebook_mode(connected=True)



02 单变量散布:直方图和箱线图


单变量—单要素—图是开端剖析数据的规范办法,直方图是制造散布图的首选图(尽管它有一些问题-https://w.url.cn/s/AkZpZF1)。在这里,运用作者Medium文章的核算信息(你能够看到怎么获取你的核算数据,或许你也能够运用我的-https://w.url.cn/s/AQRA3Kp),制造了关于文章点赞数量的交互式直方图(df是规范的Pandas数据帧):


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


运用plotly+cufflinks制造的交互式直方图


关于那些习气运用Matplotlib的人来说,咱们所要做的便是增加一个字母(运用iplot而不是plot),咱们就能够得到一个更美观的交互式图表! 咱们能够点击数据来获取更多细节,扩大图的各个部分,咱们稍后会看到,能够挑选要高亮的内容。


假如咱们想要制造叠加的直方图,运用如下代码,相同十分简略:


df[['time_started''time_published']].iplot(
    kind='hist',
    histnorm='percent',
    barmode='overlay',
    xTitle='Time of Day',
    yTitle='(%) of Articles',
    title='Time Started and Time Published')



经过运用一点点Pandas相关的操作,咱们能够做一个条形图:


# Resample to monthly frequency and plot 
df2 = df[['view','reads','published_date']].\
         set_index('published_date').\
         resample('M').mean()
df2.iplot(kind='bar', xTitle='Date', yTitle='Average',
    title='Monthly Average Views and Reads')   



正如咱们所看到的,咱们能够将Pandas与plotly+cufflinks结合起来。可对按出版物每个故事的粉丝,制造箱线图:


df.pivot(columns='publication', values='fans').iplot(
        kind='box',
        yTitle='fans',
        title='Fans Distribution by Publication')



交互性的优点是咱们能够根据需要探究和分组数据。 在箱线图中有许多信息,假如没有查询数字的才能,咱们会错失大部分的信息!



03 散点图


散点图是大多数剖析办法的中心。它答应咱们看到变量随时刻演化的进程或两个(或更多)变量之间的联络。


  • 时刻序列


适当一部分的实在数据会有一个时刻维度。 走运的是,plotly+cufflinks的规划考虑了时刻序列的可视化。 接下来运用下面的代码制造一个关于作者TDS文章的数据框,看看趋势是怎么改变。


Create a dataframe of Towards Data Science Articles
tds = df[df['publication'] == 'Towards Data Science'].\
         set_index('published_date')
# Plot read time as a time series
tds[['claps''fans''title']].iplot(
    y='claps', mode='lines+markers', secondary_y = 'fans',
    secondary_y_title='Fans', xTitle='Date', yTitle='Claps',
    text='title', title='Fans and Claps over Time')



在这里,咱们仅用一行代码做了许多不同的作业:


  • 主动获取时刻序列x轴

  • 增加辅佐y轴,由于咱们的变量有不同的规模

  • 将文章标题增加为悬停信息


咱们还能够十分轻松地增加文本注释:


tds_monthly_totals.iplot(
    mode='lines+markers+text',
    text=text,
    y='word_count',
    opacity=0.8,
    xTitle='Date',
    yTitle='Word Count',
    title='Total Word Count by Month')  


带注释的散点图


关于运用第三个变量来上色的双变量散点图,咱们能够运用如下指令:


df.iplot(
    x='read_time',
    y='read_ratio',
    # Specify the category
    categories='publication',
    xTitle='Read Time',
    yTitle='Reading Percent',
    title='Reading Percent vs Read Ratio by Publication')



咱们能够运用log轴(指定为绘图布局)(拜见Plotly文档-中的布局细节-https://plot.ly/python/reference/)以及数值变量来调整气泡,让图表更杂乱一点:


tds.iplot(
    x='word_count',
    y='reads',
    size='read_ratio',
    text=text,
    mode='markers',
    # Log xaxis
    layout=dict(
        xaxis=dict(type='log', title='Word Count'),
        yaxis=dict(title='Reads'),
        title='Reads vs Log Word Count Sized by Read Ratio'))


更进一步的作业(详见notebook-https://w.url.cn/s/AS8rPTo),咱们乃至能够在一个图表上放置四个变量(不主张-https://w.url.cn/s/ALRC02Y)!



和之前相同,咱们能够将pandas与plotly + cufflinks结合起来,用于取得有用的图表。


df.pivot_table(
    values='views', index='published_date',
    columns='publication').cumsum().iplot(
        mode='markers+lines',
        size=8,
        symbol=[12345],
        layout=dict(
            xaxis=dict(title='Date'),
            yaxis=dict(type='log', title='Total Views'),
            title='Total Views over Time by Publication'))



有关增加功用的更多示例,请参阅notebook或文档。 咱们能够运用单行代码在文本中增加文本注释,参阅线和最佳拟合线,而且依然能够进行悉数的交互。



04 进阶图表


现在咱们将制造一些你或许不会常常运用的图表,它或许会令人形象深化。咱们将运用plotly figure_factory(https://w.url.cn/s/ACGcXLa),也仅运用一行代码来制造这些令人难以置信的图。


  • 散点矩阵


当咱们想要探究许多变量之间的联络时,散点矩阵(也称为splom)是一个很好的挑选:


import plotly.figure_factory as ff
figure = ff.create_scatterplotmatrix(
    df[['claps''publication''views',      
        'read_ratio','word_count']],
    diag='histogram',
    index='publication')



这个图也是能够彻底人机交互的,用于探究数据。



05 相关性热力求


为了可视化数值变量之间的相关性,咱们会核算相关性,然后制造带注释的热力求:


corrs = df.corr()
figure = ff.create_annotated_heatmap(
    z=corrs.values,
    x=list(corrs.columns),
    y=list(corrs.index),
    annotation_text=corrs.round(2).values,
    showscale=True)



还有许多不同类型的图。cufflinks还有几个主题,咱们能够用来制造彻底不同的风格。例如,下面咱们在“空间”主题中有一个比率图,在“ggplot”中有一个打开图:



咱们还能够得到3D图(外表和气泡):



你乃至能够制造饼图:




06 在Plotly Chart Studio中修改


当你在Notebook中制造这些图时,你会注意到图表右下角有一个小链接,上面写着“Export to plot.ly”。 假如单击该链接,你将会进入到Chat Studio,在那里您能够修改图并进行终究演示。 你能够增加注释,指定色彩,并整理悉数不相关的内容来得到一张超卓的图。然后,你能够在线发布图,以便任何人都能够经过链接找到它。


下面是我在Chart Studio中发布的两个图表:


上面说到的悉数,并不是该绘图库的悉数功用! 因而作者主张读者检查plotly和cufflinks文档,以取得更令人难以置信的图形。


Plotly interactive graphics of wind farms in United States (Source)



07 总结


关于淹没本钱谬论最糟糕的部分是你只能认识到在你退出这项尽力之后浪费了多少时刻。走运的是,现在作者犯了长时刻坚持运用Matploblib的过错,而你不用!


在考虑绘图库时,咱们一般想要以下的一些东西:


  1. 仅用一行代码就能够快速探究数据

  2. 用于子集化/查询数据的交互元素

  3. 根据需要深化发掘细节

  4. 轻松定制终究演示文稿


到现在,在Python中完结悉数这些操作的最佳挑选是 Plotly库。 Plotly答应咱们快速进行可视化,并协助咱们经过交互更好地探究咱们的数据。 此外,有必要供认的是,绘图应该是数据科学中最令人愉快的部分之一! 运用其他库时,绘图变成了一项繁琐的使命。可是运用plotly库时,能够为制造一张好图而愉悦!


A plot of my enjoyment with plotting in Python over time


现在是2019年,是时分晋级您的Python绘图库,以便在数据可视化中完成更优的功率,功用和美学。


原文地址:

https://towardsdatascience.com/the-next-level-of-data-visualization-in-python-dd6e99039d5e



据核算,99%的大咖都完结了这个神操作



更多精彩


在大众号后台对话框输入以下关键词

检查更多优质内容!


PPT | 陈述 | 读书 | 书单 | 干货 

大数据 | 揭秘 | Python | 可视化

AI | 人工智能 | 5G | 区块链

机器学习 | 深度学习 | 神经网络

1024 | 段子 | 数学 | 高考


猜你想看




Q: 你最喜欢哪个可视化东西?

欢迎留言与我们共享

觉得不错,请把这篇文章共享给你的朋友

转载 / 投稿请联络:baiyu@hzbook.com

更多精彩,请在后台点击“历史文章”检查

除非特别注明,本文『勿忘我花语,茅山后裔,邳-华丽银行集团-最新集团新闻-国内时事热点』来源于互联网、微信平台、QQ空间以及其它朋友推荐等,非本站作者原创。 本站作者admin不对本文拥有版权,如有侵犯,请投诉。我们会在72小时内删除。 但烦请转载时请标明出处:“本文转载于『华丽银行集团-最新集团新闻-国内时事热点』,原文地址:http://bankingglossary.net/articles/3018.html