日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

matplotlib 横坐标少了一个点_收藏起来!比 matplotlib 效率高十倍的数据可视化神器!...

發(fā)布時(shí)間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matplotlib 横坐标少了一个点_收藏起来!比 matplotlib 效率高十倍的数据可视化神器!... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方“濤哥聊Python”,選擇“星標(biāo)”公眾號(hào)

作者:Will Koehrsen

圖文投稿:Allen

編輯:Kooyee

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

其他:https://mp.weixin.qq.com/s/DdME3Py88uujFNcoFIhLgg

心理學(xué)上有一個(gè)名詞叫“沉沒成本謬誤”,它指如果我們已經(jīng)在一項(xiàng)事業(yè)上花費(fèi)了很多時(shí)間,那么即使明知是失敗的,我們?nèi)匀粫?huì)傾向于繼續(xù)把時(shí)間和資源花在上面。

在數(shù)據(jù)可視化的路上,我也曾犯過這樣的錯(cuò)誤。

當(dāng)我明知存在更高效、更具交互性和外觀更好的替代方案時(shí),我卻仍然繼續(xù)使用一個(gè)過時(shí)的繪圖庫——matplotlib,只是因?yàn)槲以?jīng)花了數(shù)百個(gè)小時(shí)來學(xué)習(xí) matplotlib 復(fù)雜的語法。

幸運(yùn)的是,現(xiàn)在有許多的開源繪圖庫可供選擇,經(jīng)過仔細(xì)研究,我發(fā)現(xiàn) plotly 包無論從易用性、交互性還是功能性來看,都有絕對(duì)的優(yōu)勢(shì)。接下來,我將帶領(lǐng)大家學(xué)會(huì)如何用更少的時(shí)間繪制更美觀的可視化圖表——通常只需要一行代碼。

本文所有代碼都可以在 GitHub 上找到。讀者朋友們也可以直接在瀏覽器里打開 NBViewer 鏈接查看效果。地址獲取方式見文末。

Plotly簡(jiǎn)要概述

plotly Python 包是一個(gè)構(gòu)建在 plotly.js 上的開源庫,而后者又是構(gòu)建在 d3.js 上的。我們將使用一個(gè) plotly 的“包裝器”——cufflinks,它可以 plotly 的使用變得更加簡(jiǎn)單。整個(gè)堆疊順序是cufflinks>plotly>plotly.js>d3.js,意味著我們同時(shí)獲得了 Python 的編程高效性和d3強(qiáng)大的圖形交互能力。(畢竟d3.js是全世界公認(rèn)的第一可視化框架!)

本文中所有工作都是使用 plotly+cufflinks 在 Jupyter Notebook 中完成的。在開始前,我們需要使用?pip install cufflinks plotly?在 Python 環(huán)境中安裝這兩個(gè)包,然后在 jupyter notebook 中導(dǎo)入這兩個(gè)包:

# 導(dǎo)入plotly包import plotly.plotly as pyimport plotly.graph_objs as gofrom plotly.offline import iplot,init_notebook_mode# 使用離線模式的 plotly + cufflinksimport cufflinkscufflinks.go_offline(connected=True)

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

單變量-單變量制圖是開始一個(gè)數(shù)據(jù)分析的標(biāo)準(zhǔn)方法。直方圖是繪制單變量分布的首選方式。在這里,我使用的數(shù)據(jù)來源是我個(gè)人在 medium 網(wǎng)站上所寫過文章的統(tǒng)計(jì)信息,讓我們先來制作一個(gè)關(guān)于文章點(diǎn)贊次數(shù)的交互式直方圖(df 是一個(gè)標(biāo)準(zhǔn)的 Pandas 數(shù)據(jù)結(jié)構(gòu))。

df['claps'].iplot(kind='hist', x, y, )

如果你已經(jīng)習(xí)慣使用matplotlib,你所需要做的只是在你原有代碼的基礎(chǔ)上添加一個(gè)字母,即把 plot 改為 iplot,就可以得到一個(gè)更加好看的交互式圖標(biāo)!我們可以通過鼠標(biāo)的滑動(dòng)獲得更多的數(shù)據(jù)幾節(jié),還可以放大圖的各個(gè)部分。

如果我們想要繪制重疊的直方圖,這很簡(jiǎn)單:

df[['time_started', 'time_published']].iplot( kind='hist', histnorm='percent', barmode='overlay', x, y, )

通過一點(diǎn)?pandas?處理,我們還可以制作一個(gè)條形圖:

#重采樣獲得每月的均值 e Views and Reads')df2 = df[['view','reads','published_date']].set_index('published_date').resample('M').mean()df2.iplot(kind='bar', x, y, )

就像我們前面看到的那樣,pandas+plotly+cufflinks 這一組合的功能非常強(qiáng)大。如果我們要繪制一個(gè)關(guān)于每篇文章粉絲數(shù)量在不同發(fā)表渠道的分布情況的箱線圖,我們可以先使用 pandas 中DataFrame 的 pivot(透視表) 功能,然后再繪制圖表,如下:

df.pivot(columns='publication', values='fans').iplot( kind='box', y,)

交互式圖表的好處就在于,我們可以盡情地探索圖表中的數(shù)據(jù)。特別是在箱線圖中,包含的信息很多,如果不能局部放大查看,我們可能會(huì)錯(cuò)過這些信息。

散點(diǎn)圖

散點(diǎn)圖是大多數(shù)分析的核心,它可以使我們看到變量隨著時(shí)間的演變情況,也可以看到兩種變量之間的關(guān)系。

時(shí)間序列

現(xiàn)實(shí)世界中的大部分?jǐn)?shù)據(jù)都與時(shí)間相關(guān)。幸運(yùn)的是,plotly + cufflinks 在設(shè)計(jì)之初就考慮到了時(shí)間序列的可視化。讓我們來創(chuàng)建一個(gè)關(guān)于我寫過文章情況的 dataframe,看看它的各項(xiàng)指標(biāo)是怎么隨著時(shí)間變化的。

#創(chuàng)建一個(gè)數(shù)據(jù)集,只包括發(fā)布在Towards Data Science渠道的文章tds = df[df['publication'] == 'Towards Data Science']. set_index('published_date')

#將閱讀時(shí)間作為時(shí)間序列tds[['claps', 'fans', 'title']].iplot( y='claps', mode='lines+markers', secondary_y = 'fans', secondary_y_, x, y, text='title', )

我們?cè)谝恍写a里完成了很多不同的事情:

- 自動(dòng)獲得了格式友好的時(shí)間序列作為x軸

- 添加一個(gè)次坐標(biāo)軸(第二y軸),因?yàn)樯蠄D中的兩個(gè)變量的值范圍不同。

- 添加文章的標(biāo)題到每個(gè)數(shù)據(jù)點(diǎn)中(鼠標(biāo)放上去可以顯示文章名和變量值)

如果要從圖表上了解更多的信息,我們還可以很容易地添加文本注釋:

tds_monthly_totals.iplot(mode='lines+markers+text', text=text, y='word_count', opacity=0.8, x, y,)

對(duì)于由第三個(gè)分類變量著色的雙變量散點(diǎn)圖,我們使用:

#read_time代表文章所需閱讀時(shí)長(zhǎng),read_ratio代表閱讀比例,即閱讀文章的人數(shù)/點(diǎn)擊查看的人數(shù)df.iplot( x='read_time', y='read_ratio',

# 定義類別變量categories='publication',xTitle='Read

Time',y, )

如果要在圖表中體現(xiàn)三個(gè)數(shù)值變量,我們還可以使用氣泡圖,如下圖:橫坐標(biāo)、縱坐標(biāo)、氣泡的大小分別代表三個(gè)不同的變量——文章字?jǐn)?shù)的對(duì)數(shù)、閱讀數(shù)量、閱讀比例。

tds.iplot(x='word_count',y='reads', size='read_ratio',text=text, mode='markers',

# Log xaxislayout=dict(xaxis=dict(type='log', ), yaxis=dict(), ))

再做一點(diǎn)工作,我們甚至可以在一個(gè)圖表中體現(xiàn)四個(gè)變量!

結(jié)合 pandas 對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)處理,我們可以得到很多非常有價(jià)值的圖,比如下面這張關(guān)于不同文章發(fā)表渠道的讀者點(diǎn)擊查看數(shù)量的變化趨勢(shì)圖,顯然名為Toward Data Science的發(fā)表渠道能給文章帶來更多的點(diǎn)擊量。

更高級(jí)的圖表

接下來所講述的圖表大家可能不會(huì)經(jīng)常用到,但是非??犰?#xff0c;值得了解一下。同樣,我們?nèi)匀恢皇褂靡恍写a就可以完成這些超級(jí)圖表。

散點(diǎn)圖矩陣

當(dāng)我們想要探索許多變量之間的關(guān)系時(shí),散點(diǎn)圖矩陣是非常好的選擇。

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

以上的散點(diǎn)矩陣圖仍然是可以交互的,可以自由放大縮小,查看各個(gè)數(shù)據(jù)點(diǎn)的詳細(xì)信息。

相關(guān)系數(shù)熱力圖

為了將數(shù)值型變量的相關(guān)性可視化,我們可以先計(jì)算相關(guān)系數(shù),接著就可以創(chuàng)建一個(gè)帶注釋的熱力圖:

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)

我們還可以繪制非??犰诺?D表面圖和3D氣泡圖:

云制圖——Plotly Chart Studio

當(dāng)你使用 plotly 在 notebook 中繪制圖表時(shí),你可能注意到了每幅圖的右下角都有一個(gè)鏈接 “Export to plot.ly” 。如果你點(diǎn)擊該鏈接,就會(huì)跳轉(zhuǎn)到名為chart studio的云制圖平臺(tái),然后你就可以對(duì)自己的圖標(biāo)進(jìn)行潤(rùn)色,添加注釋、改改顏色、清理一些不必要的內(nèi)容等等。

你還可以在線發(fā)布該圖表,任何人可以直接通過鏈接訪問到你的圖表。(比如我的這個(gè)3D圖,在瀏覽器中輸入后方鏈接可直接抵達(dá):https://plot.ly/~Allencxl/3/)

前面所述的內(nèi)容還不算是這個(gè)庫的所有功能,非常鼓勵(lì)各位小伙伴們?nèi)ゲ榭?plotly 和 cufflinks 的文檔,肯定會(huì)有更多不可思議的神級(jí)可視化在等著你!

美國(guó)風(fēng)力發(fā)電廠的分布情況

總結(jié)

我已經(jīng)因?yàn)楣虉?zhí)地使用matploblib而浪費(fèi)了太多時(shí)間,所以希望大家能通過這篇文章學(xué)習(xí)到一種新的方式提升自己的繪圖效率。
另外,當(dāng)我們?cè)谶x擇繪圖庫的時(shí)候,有幾點(diǎn)是永遠(yuǎn)需要考慮的:

- 用少量的代碼進(jìn)行數(shù)據(jù)探索

- 可以實(shí)時(shí)與數(shù)據(jù)交互,查看數(shù)據(jù)子集情況

- 根據(jù)自己的需要,選擇性挖掘數(shù)據(jù)中的細(xì)節(jié)

- 非常便利地潤(rùn)色最終演示的圖表

而到目前為止,能夠在 Python 中實(shí)現(xiàn)上述需求的不二選擇便是 plotly。plotly 使我們能夠快速地進(jìn)行可視化,讓我們通過與圖表的交互更好地了解我們的數(shù)據(jù)。日常工作中,在使用其他繪圖庫的時(shí)候,我感覺繪圖是一項(xiàng)單調(diào)乏味的任務(wù),但是使用 plotly 時(shí),我覺得繪圖是數(shù)據(jù)科學(xué)中相當(dāng)有趣的工作之一!

往期文章

字節(jié)跳動(dòng),正在動(dòng)搖騰訊的根基

強(qiáng)烈推薦 | 一位從不學(xué)無術(shù)到跨行算法工程師的人生贏家!

分享3個(gè)提升效率的方法

總結(jié)

以上是生活随笔為你收集整理的matplotlib 横坐标少了一个点_收藏起来!比 matplotlib 效率高十倍的数据可视化神器!...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩素人| 国产精品77777 | 亚洲日本香蕉视频 | 亚洲久久一区 | 91网址在线观看 | 欧美色图第一页 | 欧美日韩精品一二三区 | 香蕉成视频人app下载安装 | 91婷婷在线 | 激情内射亚洲一区二区三区爱妻 | 杨幂毛片 | 催眠美妇肉奴系统 | 天天射天天干天天 | 亚洲影音 | 国产乱人 | 可以看av的网址 | 91人人干 | 人与拘一级a毛片 | 亚洲第一成人av | 激情黄色小说网站 | 一区二区三区av在线 | 精品日韩在线视频 | 中文字幕线人 | 国产精品国产三级国产aⅴ原创 | 成人h动漫在线 | 免费一级特黄特色大片 | xxxxav| 带aaa级的网名 | 欧美激情一二三 | 久久动态图 | 浪荡奴双性跪着伺候 | 91插插插插插插插插 | 蜜桃传媒| 久久精品视 | 日在线视频 | av解说在线观看 | 中文字幕第15页 | 精品一卡二卡 | 女人脱下裤子让男人捅 | 亚洲天堂一二三 | 一本色道久久综合狠狠躁的推荐 | 男人的天堂国产 | 亚洲三级在线免费观看 | 特级毛片爽www免费版 | 免费播放毛片 | 欧美日本韩国一区 | 一本毛片| 成人免费网视频 | www.国产区 | 人妻精品一区二区在线 | 国产成人三级一区二区在线观看一 | aa片在线观看视频在线播放 | 久久国产小视频 | 日韩一级性 | 欲求不满在线小早川怜子 | www.在线播放 | 亚洲视频在线观看视频 | 国产熟女一区二区丰满 | 亚洲视频二区 | 性大毛片视频 | 99人妻碰碰碰久久久久禁片 | 欧美色婷婷 | 亚洲天堂色 | 双腿张开被9个男人调教 | 日日操夜夜摸 | 欧美高清不卡 | 91porn九色| 日本不卡视频一区二区 | 少妇又紧又爽视频 | 狠狠噜噜| 国产av一区二区三区 | 激情五月婷婷小说 | 狠狠看 | 日韩有码在线播放 | 欧洲女同同性吃奶 | 欧美日本韩国一区二区 | 一二三不卡视频 | 性中国古装videossex | 黄色网址国产 | 浓精喷进老师黑色丝袜在线观看 | 啪啪的网站 | 亚洲精品电影 | 四虎精品永久在线 | 95久久| 日本免费精品视频 | 欧美激情啪啪 | 日韩午夜伦 | 日本在线不卡一区二区三区 | 日日摸夜夜添夜夜 | 国产日韩专区 | 日本xx视频免费观看 | 超碰人人人 | av2018| 久久久久久久久97 | 天天操天天玩 | 日韩欧美性视频 | 国产一级视频免费观看 | 久久综合婷婷国产二区高清 | av久草|