国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
數(shù)據(jù)可視化,還在使用Matplotlib?是時候讓Plotly表演真正的技術(shù)了...

作者 | Will Koehrsen

如何僅使用一行代碼制作漂亮、互動性強(qiáng)的圖表?

程序員的沉沒成本論

沉沒成本謬論是人類眾多的認(rèn)知偏見之一。 它指的是我們傾向于持續(xù)將時間和資源投入到失去的原因中,因?yàn)槲覀円呀?jīng)花了很多時間去追求無用的事情。沉沒成本謬論適用于當(dāng)我們花了很多成本也不會起作用的項(xiàng)目或工作。比如,當(dāng)存在效率更高,互動性更強(qiáng)的選擇時,我們依然繼續(xù)使用Matplotlib。

在過去的幾個月里,我意識到我使用Matplotlib的唯一原因是我花費(fèi)了數(shù)百小時去學(xué)習(xí)它復(fù)雜的語法。這種復(fù)雜性讓作者在StackOverflow上遭受了數(shù)小時的挫折去弄清楚如何格式化日期或添加第二個y軸。幸運(yùn)的是,在探索了一些選項(xiàng)后,一個在易用性,文檔和功能方面顯著的贏家是Plotly庫。

在本文中,我們將直接上手使用Plotly,學(xué)習(xí)如何在更短的時間內(nèi)制作出更好的圖表。

本文的所有代碼都可以在GitHub上找到(https://github.com/WillKoehrsen/Data-Analysis)。 圖表都是交互式的,可以在NBViewer(https://w.url.cn/s/ALOvpfv)上查看。

Plotly簡介

Plotly Python包(https://plot.ly/python/)是一個基于plotly.js(https://plot.ly/javascript/)構(gòu)建的開源庫,而后者又建立在d3.js(https://d3js.org/)上。我們將用一個名為cufflinks的封裝器來使用Pandas數(shù)據(jù)。因此,我們的整個堆棧是cufflinks> plotly> plotly.js> d3.js,這意味著我們可以通過d3的交互式圖形功能去獲得Python編碼的效率。

(Plotly本身就是一家擁有多種產(chǎn)品和開源工具的圖形公司。其Python版本的庫可以免費(fèi)使用,我們可以在離線模式下創(chuàng)建無限的圖表,在線模式下最多可以創(chuàng)建25個圖表,用于共享。)

本文中的所有工作都是使用Jupyter notebook完成的,其中的plotyl+cuffilinks可以在離線模式下運(yùn)行。 在使用pip命令安裝了plotly和cufflinks之后,在Jupyter中運(yùn)行以下命令:

單變量分布:直方圖和箱線圖

單變量—單因素—圖是開始分析數(shù)據(jù)的標(biāo)準(zhǔn)方法,直方圖是繪制分布圖的首選圖(雖然它有一些問題-https://w.url.cn/s/AkZpZF1)。在這里,使用作者M(jìn)edium文章的統(tǒng)計(jì)信息(你可以看到如何獲取你的統(tǒng)計(jì)數(shù)據(jù),或者你也可以使用我的-https://w.url.cn/s/AQRA3Kp),制作了關(guān)于文章點(diǎn)贊數(shù)量的交互式直方圖(df是標(biāo)準(zhǔn)的Pandas數(shù)據(jù)幀):

對于那些習(xí)慣使用Matplotlib的人來說,我們所要做的就是添加一個字母(使用iplot而不是plot),我們就可以得到一個更好看的交互式圖表! 我們可以點(diǎn)擊數(shù)據(jù)來獲取更多細(xì)節(jié),放大圖的各個部分,我們稍后會看到,可以選擇要高亮的內(nèi)容。

如果我們想要繪制疊加的直方圖,使用如下代碼,同樣非常簡單:

通過使用一點(diǎn)點(diǎn)Pandas相關(guān)的操作,我們可以做一個條形圖:

正如我們所看到的,我們可以將Pandas與plotly+cufflinks結(jié)合起來??蓪Π闯霭嫖锩總€故事的粉絲,繪制箱線圖:

交互性的好處是我們可以根據(jù)需要探索和分組數(shù)據(jù)。 在箱線圖中有很多信息,如果沒有觀察數(shù)字的能力,我們會錯過大部分的信息!

散點(diǎn)圖

散點(diǎn)圖是大多數(shù)分析方法的核心。它允許我們看到變量隨時間演變的過程或兩個(或更多)變量之間的關(guān)系。

時間序列

相當(dāng)一部分的真實(shí)數(shù)據(jù)會有一個時間維度。 幸運(yùn)的是,plotly+cufflinks的設(shè)計(jì)考慮了時間序列的可視化。 接下來使用下面的代碼制作一個關(guān)于作者TDS文章的數(shù)據(jù)框,看看趨勢是如何變化。

在這里,我們僅用一行代碼做了很多不同的事情:

自動獲取時間序列x軸

添加輔助y軸,因?yàn)槲覀兊淖兞坑胁煌姆秶?/p>

將文章標(biāo)題添加為懸停信息

我們還可以非常輕松地添加文本注釋:

對于使用第三個變量來上色的雙變量散點(diǎn)圖,我們可以使用如下命令:

我們可以使用log軸(指定為繪圖布局)(參見Plotly文檔-中的布局細(xì)節(jié)-https://plot.ly/python/reference/)以及數(shù)值變量來調(diào)整氣泡,讓圖表更復(fù)雜一點(diǎn):

更進(jìn)一步的工作(詳見notebook-https://w.url.cn/s/AS8rPTo

),我們甚至可以在一個圖表上放置四個變量(不建議-https://w.url.cn/s/ALRC02Y)!

和之前一樣,我們可以將pandas與plotly + cufflinks結(jié)合起來,用于獲得有用的圖表。

有關(guān)添加功能的更多示例,請參閱notebook或文檔。 我們可以使用單行代碼在文本中添加文本注釋,參考線和最佳擬合線,并且仍然可以進(jìn)行所有的交互。

進(jìn)階圖表

現(xiàn)在我們將制作一些你可能不會經(jīng)常使用的圖表,它可能會令人印象深刻。我們將使用plotly figure_factory(https://w.url.cn/s/ACGcXLa

),也僅使用一行代碼來制作這些令人難以置信的圖。

散點(diǎn)矩陣

當(dāng)我們想要探索許多變量之間的關(guān)系時,散點(diǎn)矩陣(也稱為splom)是一個很好的選擇:

這個圖也是可以完全人機(jī)交互的,用于探索數(shù)據(jù)。

相關(guān)性熱力圖

為了可視化數(shù)值變量之間的相關(guān)性,我們會計(jì)算相關(guān)性,然后制作帶注釋的熱力圖:

還有很多不同類型的圖。cufflinks還有幾個主題,我們可以用來制作完全不同的風(fēng)格。例如,下面我們在“空間”主題中有一個比率圖,在“ggplot”中有一個展開圖:

我們還可以得到3D圖(表面和氣泡):

你甚至可以制作餅圖:

在Plotly Chart Studio中編輯

當(dāng)你在Notebook中制作這些圖時,你會注意到圖表右下角有一個小鏈接,上面寫著“Export to plot.ly”。 如果單擊該鏈接,你將會進(jìn)入到Chat Studio,在那里您可以修改圖并進(jìn)行最終演示。 你可以添加注釋,指定顏色,并清理所有不相關(guān)的內(nèi)容來得到一張出色的圖。然后,你可以在線發(fā)布圖,以便任何人都可以通過鏈接找到它。

下面是我在Chart Studio中發(fā)布的兩個圖表:

上面提到的一切,并不是該繪圖庫的全部功能! 因此作者建議讀者查看plotly和cufflinks文檔,以獲得更令人難以置信的圖形。

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

總結(jié)

關(guān)于沉沒成本謬論最糟糕的部分是你只能意識到在你退出這項(xiàng)努力之后浪費(fèi)了多少時間。幸運(yùn)的是,現(xiàn)在作者犯了長時間堅(jiān)持使用Matploblib的錯誤,而你不必!

在考慮繪圖庫時,我們通常想要以下的一些東西:

1、僅用一行代碼就可以快速探索數(shù)據(jù)

2、用于子集化/調(diào)查數(shù)據(jù)的交互元素

3、根據(jù)需要深入挖掘細(xì)節(jié)

4、輕松定制最終演示文稿

截至目前,在Python中完成所有這些操作的最佳選擇是 Plotly庫。 Plotly允許我們快速進(jìn)行可視化,并幫助我們通過交互更好地探索我們的數(shù)據(jù)。 此外,必須承認(rèn)的是,繪圖應(yīng)該是數(shù)據(jù)科學(xué)中最令人愉快的部分之一! 使用其他庫時,繪圖變成了一項(xiàng)繁瑣的任務(wù)。但是使用plotly庫時,可以為制作一張好圖而愉悅!

A plot of my enjoyment with plotting in Python over time

現(xiàn)在是2019年,是時候升級您的Python繪圖庫,以便在數(shù)據(jù)可視化中實(shí)現(xiàn)更優(yōu)的效率,功能和美學(xué)。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
比 matplotlib 效率高十倍的數(shù)據(jù)可視化神器
編程干貨|這么多Python數(shù)據(jù)可視化庫,你最喜歡哪個?
深度盤點(diǎn) | 史上最全python數(shù)據(jù)可視化庫
cufflinks: 讓pandas擁有plotly的炫酷的動態(tài)可視化能力
09-選擇適合你的Python可視化工具(續(xù))
十大最受數(shù)據(jù)科學(xué)歡迎的Python庫
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服