av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

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

相信很多讀者都聽過(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í)該如何選擇。

十年的海曙網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整海曙建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“海曙網(wǎng)站設(shè)計(jì)”,“海曙網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

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

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

數(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() 

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

Pyecharts

Echarts 是一個(gè)由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(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中直接展示??傮w來(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)生成的兩系列柱狀圖如下:

可以看到,該圖 支持交互式 展示與點(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,添加小組件等

總體來(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 

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)圖像如下

默認(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分

Plotly

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) 

默認(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 

Bokeh

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=(0, 150), 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) 

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

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 分。

Seaborn

從 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)有顯得很難看

相比上面四種工具,從 代碼量 上來(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 

小結(jié)

以上就是對(duì)常見的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è)工具的話,我的意見是 :熟練掌握一個(gè)工具之后,了解其他工具即可 !


新聞名稱:你知道怎么選可視化工具嗎?深度評(píng)測(cè)5大Python數(shù)據(jù)可視化工具
文章URL:http://uogjgqi.cn/article/dpsghcs.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流