自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

開(kāi)發(fā) 開(kāi)發(fā)工具 新聞 數(shù)據(jù)可視化
為了更清晰的了解這幾款用于可視化的Python在作圖時(shí)的異同,本文將使用 同一組數(shù)據(jù) 分別制作多系列條形圖來(lái)對(duì)比。

相信很多讀者都聽(tīng)過(guò) Matplotlib 、 Pyecharts 、 Seaborn 、 Plotly 、 Bokeh 這五大工具,學(xué)習(xí)Python就是希望做出各種酷炫的可視化圖表,本文就將通過(guò)真實(shí)繪圖來(lái)深度評(píng)測(cè)這五個(gè)Python數(shù)據(jù)可視化的庫(kù), 看看到底這幾種工具各有什么優(yōu)缺點(diǎn),在制作圖表時(shí)該如何選擇。

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

指標(biāo)說(shuō)明

為了更清晰的了解這幾款用于可視化的Python在作圖時(shí)的異同,本文將使用 同一組數(shù)據(jù) 分別制作多系列條形圖來(lái)對(duì)比,主要將通過(guò)以下幾個(gè)指標(biāo)來(lái)進(jìn)行評(píng)測(cè):

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

數(shù)據(jù)說(shuō)明

本文使用的數(shù)據(jù)為Pyecharts中的faker數(shù)據(jù)

  1. from pyecharts.faker import Faker 
  2. x = Faker.choose() 
  3. y1 = Faker.values() 
  4. y2 = Faker.values() 
你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

x為一列品牌名稱,y1/y2為一列相同長(zhǎng)度的 無(wú)意義 數(shù)據(jù),接下來(lái)讓我們使用不同的庫(kù)對(duì)這組數(shù)據(jù)進(jìn)行可視化!

Pyecharts

Echarts 是一個(gè)由百度開(kāi)源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開(kāi)發(fā)者的認(rèn)可。而Python是一門富有表達(dá)力的語(yǔ)言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時(shí), pyecharts 誕生了,支持 30+ 種圖表 。 在pyecharts中制作條形圖首先需要導(dǎo)入相關(guān)庫(kù)

  1. from pyecharts import options as opts 
  2. from pyecharts.charts import Bar 

接著是繪圖并不做任何任何調(diào)整,首先創(chuàng)建一個(gè)Bar實(shí)例,接著添加x軸y軸數(shù)據(jù),注意 僅接收l(shuí)ist格式 數(shù)據(jù),最后添加標(biāo)題并設(shè)置在notebook中直接展示。總體來(lái)說(shuō)還是比較符合正常的作圖邏輯,整體 代碼量并不多 。

  1. c = ( 
  2.     Bar() 
  3.     .add_xaxis(x) 
  4.     .add_yaxis("商家A", y1) 
  5.     .add_yaxis("商家B", y2) 
  6.     .set_global_opts(title_opts=opts.TitleOpts(title="Pyecharts—柱狀圖", subtitle="")) 
  7. ).render_notebook() 

默認(rèn)生成的兩系列柱狀圖如下:

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

可以看到,該圖 支持交互式 展示與點(diǎn)擊,默認(rèn)生成的樣式也較為美觀,并且Pyecharts有詳細(xì)的中文文檔與demo,網(wǎng)上關(guān)于Pyecharts的討論也較多,如果是剛接觸的讀者也能比較快的上手。 當(dāng)然如果對(duì)默認(rèn)樣式不滿意的話,可以進(jìn)行一些調(diào)整,由于 文檔十分完整 ,所以代碼修改起來(lái)并不困難,比如可以修改主題并設(shè)置一些標(biāo) 記線、DataZoom,添加小組件等

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

總體來(lái)說(shuō),由于Pyecharts是基于Echarts制作的,因此生成圖表比較美觀,并且 官方中文文檔對(duì)相關(guān)設(shè)置講解非常詳細(xì),有關(guān)Pyecharts的 討論也非常多 ,所以如果在使用過(guò)程中有相關(guān)疑問(wèn)也很容易通過(guò)檢索找到答案,但遺憾的是不支持使用pandas中的series數(shù)據(jù),需要 轉(zhuǎn)換為list 才可以使用,不過(guò)整體還是讓我很滿意的一款可視化庫(kù)。主觀評(píng)分: 85 

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

Matplotlib

Matplotlib 應(yīng)該是最廣泛使用的Python可視化工具,支持的圖形種類非常多,使用Matplotlib制作相同效果的圖需要先導(dǎo)入相關(guān)庫(kù),并且并不支持原生中文所以還要設(shè)置下中文顯示

  1. import matplotlib.pyplot as plt 
  2. import numpy as np 
  3. plt.rcParams['font.sans-serif'] = ['SimHei']  

接著就是繪圖,但是相比較于pyecharts大多是往寫好的代碼里面添加數(shù)據(jù)、配置不同,matplotlib大多數(shù)需要我們自己寫代碼,所以 代碼量可能稍多一點(diǎn)

  1. width = 0.35 
  2. x1 = np.arange(len(x))  
  3.  
  4. fig, ax = plt.subplots() 
  5. rects1 = ax.bar(x1 - width/2, y1, width, label='商家A'
  6. rects2 = ax.bar(x1 + width/2, y2, width, label='商家B'
  7.  
  8. ax.set_title('Matplotlib—柱狀圖'
  9. ax.set_xticks(x1) 
  10. ax.set_xticklabels(x) 
  11. ax.legend() 
  12.  
  13. plt.show() 

最后生成的默認(rèn)圖像如下

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

默認(rèn)配色不是很好看但也沒(méi)有很難看,看起來(lái)更學(xué)術(shù)一點(diǎn),但是 不支持交互式 點(diǎn)擊查看等操作,雖然代碼量更多一點(diǎn),但是由于Matplotlib的火熱, 網(wǎng)上關(guān)于matplotlib的資料比Pyecharts要多很多 ,所以寫代碼與調(diào)整代碼的過(guò)程也 并不復(fù)雜 ,整體主觀評(píng)分77分

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

Plotly

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

Plotly 也是一款非常強(qiáng)大的Python可視化庫(kù), Plotly內(nèi)置完整的交互能力及編輯工具,支持在線和離線模式,提供穩(wěn)定的API以便于現(xiàn)有應(yīng)用集成,既可以在web瀏覽器中展示數(shù)據(jù)圖表,也可以存入本地拷貝 。 但是由于官方 未提供中文文檔 ,網(wǎng)上關(guān)于Plotly的教程也僅限于官方的一些demo,對(duì)于一些詳細(xì)的參數(shù)設(shè)置并 沒(méi)有太多資料 ,首先還是先導(dǎo)入相關(guān)庫(kù)并設(shè)置notebook顯示

  1. import plotly 
  2. import plotly.offline as py 
  3. import plotly.graph_objs as go 
  4. plotly.offline.init_notebook_mode(connected=True) 

接下來(lái)是繪圖代碼, 首先要對(duì)數(shù)據(jù)先進(jìn)行處理 ,剩下的基礎(chǔ)配置其實(shí)和Pyecharts比較類似

  1. trace0 = go.Bar( 
  2.     x = x, 
  3.     y = y1, 
  4.     name = '商家A'
  5. trace1 = go.Bar( 
  6.     x = x, 
  7.     y = y2, 
  8.     name = '商家B'
  9. data = [trace0,trace1] 
  10. layout = go.Layout( 
  11.         title={ 
  12.         'text'"Plotly-柱狀圖"
  13.         'y':0.9
  14.         'x':0.5
  15.         'xanchor''center'
  16.         'yanchor''top'}) 
  17. fig = go.Figure(data=data, layout=layout) 
  18. py.iplot(fig) 
你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

默認(rèn)樣式生成的圖如上, 配色也不難看 ,并且可以看到是 支持交互式 操作的,同時(shí)是默認(rèn)添加toolbox小組件,可以更方便的查看, 支持30多種圖形 ,總體來(lái)說(shuō)還是比較優(yōu)秀的一個(gè)可視化工具,但是如果真要熟練使用的話可能需要一點(diǎn)時(shí)間用于查找相關(guān)資料,因?yàn)榫W(wǎng)上 關(guān)于Plotly的資料不多 ,大多是基本使用的簡(jiǎn)單教程,如果想查找一些細(xì)節(jié)的操作比如我為了查找讓標(biāo)題居中的方法,百度之后用Google在國(guó)外某論壇找到類似問(wèn)題并找到設(shè)置,主觀評(píng)分: 76 

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

Bokeh

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

Bokeh 是一個(gè)專門針對(duì)Web瀏覽器的呈現(xiàn)功能的 交互式 可視化Python庫(kù)。這是Bokeh與其它可視化庫(kù)最核心的區(qū)別,它可以做出像 D3.js 簡(jiǎn)潔 漂亮的交互可視化效果,但是使用難度低于D3.js,首先還是導(dǎo)入相關(guān)庫(kù)

  1. from bokeh.transform import dodge 
  2. import pandas as pd 
  3. from bokeh.core.properties import value 
  4. import numpy as np 
  5. import matplotlib.pyplot as plt 
  6. %matplotlib inline 
  7. from bokeh.io import output_notebook 
  8. output_notebook() # 導(dǎo)入notebook繪圖模塊 
  9. from bokeh.plotting import figure,show 
  10. from bokeh.models import ColumnDataSource# 導(dǎo)入圖表繪制、圖標(biāo)展示模塊 # 導(dǎo)入ColumnDataSource模塊 # 導(dǎo)入dodge、value模塊 

相關(guān)依賴比上面三個(gè)要多出很多,并且Bokeh有自己的數(shù)據(jù)結(jié)構(gòu) ColumnDataSource ,所以要先對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,接著就是創(chuàng)建畫布、添加數(shù)據(jù)及設(shè)置

  1. df = pd.DataFrame({'商家A':y1,'商家B':y2}, 
  2.                  index = x_) 
  3. _x = ['商家A','商家B']    # 系列名 
  4. data = {'index':x_} 
  5. for i in _x: 
  6.     data[i] = df[i].tolist()# 生成數(shù)據(jù),數(shù)據(jù)格式為dict 
  7. source = ColumnDataSource(data=data)# 將數(shù)據(jù)轉(zhuǎn)化為ColumnDataSource對(duì)象 
  8.  
  9. p = figure(x_range=x_, y_range=(0150), plot_height=350, title="boken-柱狀圖",tools="crosshair,pan,wheel_zoom,box_zoom,reset,box_select,lasso_select"
  10.  
  11. p.vbar(x=dodge('index', -0.1, range=p.x_range), top='商家A', width=0.2, source=source,color="#718dbf", legend=value("商家A")) 
  12. p.vbar(x=dodge('index',  0.1, range=p.x_range), top='商家B', width=0.2, source=source,color="#e84d60", legend=value("商家B"))# dodge(field_name, value, range=None) → 轉(zhuǎn)換成一個(gè)可分組的對(duì)象,value為元素的位置(配合width設(shè)置) 
  13. p.xgrid.grid_line_color = None 
  14. p.legend.location = "top_left" 
  15. p.legend.orientation = "horizontal" # 其他參數(shù)設(shè)置 
  16. show(p) 
你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

可以看到,Bokeh做出來(lái)的圖也是 支持交互 的,不并且樣式之類的看上去還是比較舒服的,不過(guò)上面這張圖是經(jīng)過(guò)調(diào)整顏色的,因?yàn)槟J(rèn)不對(duì)兩個(gè)系列進(jìn)行區(qū)分顏色

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

Bokeh一個(gè)很明顯的特點(diǎn)就是 代碼量較上面三個(gè)工具要多了很多 ,大多是在 數(shù)據(jù)的處理 上,并且和Plotly一樣,有關(guān)bokeh相關(guān)的 中文資料也不多 ,大多是入門型的基本使用于介紹,雖然從官方給出的圖來(lái)看能作出很多比pyecharts更精美的圖,但是查找相關(guān)參數(shù)的設(shè)置上將會(huì)耗費(fèi)一定時(shí)間,主觀評(píng)分 71 分。

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

Seaborn

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

從 seaborn 官網(wǎng)給出的標(biāo)題就知道,seaborn是為了 統(tǒng)計(jì)圖表 設(shè)計(jì)的,它 是一種 基于matplotlib 的圖形可視化庫(kù),也就 是在matplotlib的基礎(chǔ)上進(jìn)行了更高級(jí)的API封裝,從而使得 作圖更加容易 ,在大多數(shù)情況下使用seaborn就能做出很具有吸引力的圖,而使用matplotlib就能制作具有更多特色的圖,還是我們的數(shù)據(jù),使用Seaborn制作首先需要導(dǎo)入相關(guān)庫(kù),由于是基于Matplotlib,所以還是 需要設(shè)置中文

  1. import seaborn as sns 
  2. import matplotlib.pyplot as plt 
  3. plt.rcParams['font.sans-serif'] = ['SimHei']  

接下來(lái)只要 一行代碼 就能生成我們要的圖,默認(rèn)配色也沒(méi)有顯得很難看

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

相比上面四種工具,從 代碼量 上來(lái)看是非常簡(jiǎn)潔的,不過(guò)還是要先將 數(shù)據(jù)轉(zhuǎn)換 為DataFrame格式,這里沒(méi)在代碼中體現(xiàn),但依舊是 最簡(jiǎn)短的代碼 ,同時(shí)并不支持交互。并且Seaborn和Plotly、bokeh有一個(gè)共同的地方就是雖然強(qiáng)大,但是 網(wǎng)上有關(guān)這三個(gè)庫(kù)的教程、討論都遠(yuǎn)少于Pyecharts與Matplotlib ,如果是新手的話可能很難快速通過(guò)搜索解決你遇到的問(wèn)題,而需要自己研究別人的代碼,主觀評(píng)分 72 

你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具

小結(jié)

以上就是對(duì)常見(jiàn)的5個(gè)Python數(shù)據(jù)可視化的評(píng)測(cè),可能通過(guò)繪制條形圖的方式去給每個(gè)工具打分不是非常合適,但我想你應(yīng)該能夠大致熟悉到每個(gè)庫(kù)在繪圖時(shí)的特點(diǎn),同時(shí)也能在選擇這些工具之前有一個(gè)簡(jiǎn)單的了解。最后正如我們文中介紹的一樣, 不同工具的應(yīng)用場(chǎng)景、目標(biāo)用戶都不完全相同 ,所以我們?cè)谶x擇工具時(shí)需要 先思考自己的使用場(chǎng)景 ,并且需要評(píng)估繪制目標(biāo)圖形的難度,就像有些工具雖然強(qiáng)大但是資料太少,不要為了追求高級(jí)的樣式而浪費(fèi)太多時(shí)間!如果你仍在猶豫學(xué)習(xí)哪一個(gè)工具的話,我的意見(jiàn)是 :熟練掌握一個(gè)工具之后,了解其他工具即可 !

 

責(zé)任編輯:張燕妮 來(lái)源: 今日頭條
相關(guān)推薦

2014-02-09 16:20:20

大數(shù)據(jù)

2017-07-27 09:49:37

Python工具Matplotlib

2015-12-02 09:44:04

Python視化工具

2017-07-04 16:00:16

PythonMatplotlib可視化工具

2023-03-06 08:03:10

Python可視化工具

2017-07-03 16:44:10

數(shù)據(jù)庫(kù)MongoDBNoSQL

2021-03-30 10:10:37

PyTorch可視化工具命令

2018-05-31 08:25:13

誤區(qū)工具可視化

2024-11-04 08:49:11

2017-09-01 10:11:04

深度學(xué)習(xí)可視化工具

2017-07-25 13:42:00

大數(shù)據(jù)可視化工具

2019-10-14 15:51:40

可視化技術(shù)微軟數(shù)據(jù)庫(kù)

2019-09-12 08:42:38

工具可視化BI系統(tǒng)

2020-12-15 09:43:20

Python可視化工具網(wǎng)絡(luò)應(yīng)用

2022-11-15 15:14:05

2022-05-07 09:02:27

數(shù)據(jù)可視化工具庫(kù)

2021-04-11 09:51:25

Redis可視化工具

2021-03-18 09:07:13

日志可視化工具Devops

2022-10-21 15:47:59

測(cè)試工具鴻蒙

2020-03-30 14:13:15

可視化工具數(shù)據(jù)可視化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)