溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python的可視化庫有哪些

發(fā)布時間:2021-11-03 18:02:09 來源:億速云 閱讀:168 作者:iii 欄目:編程語言

這篇文章主要講解了“Python的可視化庫有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python的可視化庫有哪些”吧!

Matplotlib, Seaborn, and Pandas:

我將出于幾個原因?qū)⑺鼈兘M合在一起,首先是Seaborn和Pandas繪圖是建立在Matplotlib之上的——當(dāng)你在panda中使用Seaborn或df.plot()時,你實際上是在利用Matplotlib編寫的代碼。因此,每一種方法產(chǎn)生的美感都是相似的,定制圖片的方法將使用非常相似的語法。

當(dāng)我想到這些可視化工具時,我想到:探索性數(shù)據(jù)分析。這些包對于第一次查看您的數(shù)據(jù)是非常棒的,但是當(dāng)涉及到表示時就不太好了。Matplotlib還有一組樣式選擇,它們模仿其他流行的美學(xué),比如ggplot2和xkcd。下面是一些使用Matplotlib和它的近親制作的圖的例子:

在處理籃球薪資數(shù)據(jù)時,我希望找到擁有最高薪資中位數(shù)數(shù)據(jù)的球隊。為了說明這一點,我用顏色編碼了一個柱狀圖,下面是每支球隊的工資,以顯示球員應(yīng)該去哪支球隊,這樣才能加入薪酬高的球隊。

import seaborn as snsimport matplotlib.pyplot as pltcolor_order =  ['xkcd:cerulean', 'xkcd:ocean',     'xkcd:black','xkcd:royal purple',       'xkcd:royal purple', 'xkcd:navy blue',      'xkcd:powder blue',  'xkcd:light maroon',   'xkcd:lightish  blue','xkcd:navy']sns.barplot(x=top10.Team,  y=top10.Salary,  palette=color_order).set_title('   Teams with Highest Median  Salary')plt.ticklabel_format(style='sci', axis='y',        scilimits=(0,0))

Python的可視化庫有哪些

接下來是回歸實驗殘差的Q-Q圖。這種可視化的主要目的是顯示我們可以用很少的代碼顯示比較完整的圖片。

import matplotlib.pyplot as pltimport scipy.stats as stats#model2 is  a regression modellog_resid = model2.predict(X_test)- y_teststats.probplot(log_resid, dist="norm",  plot=plt)plt.title("Normal Q-Q plot")plt.show()

Python的可視化庫有哪些

最終,Matplotlib和它的相關(guān)組件非常高效,但就演示而言,它們通常不是最終產(chǎn)品。

ggplot(2)

ggplot是最流行的R可視化軟件包。這不是一個Python包評審嗎?你可能會問。開發(fā)人員用Python實現(xiàn)了ggplot2,復(fù)制了從美學(xué)到語法的所有內(nèi)容。從我所見過的所有材料來看,它的外觀和感覺都很像ggplot2,但是還有一個額外的好處,它依賴于pandas  Python包,該包最近棄用了一些方法,導(dǎo)致ggplot的Python版本變得無關(guān)。如果您想在R中使用真正的ggplot(它具有所有相同的外觀、感覺和語法,沒有依賴項),我將在這里討論它的一些額外功能!也就是說,如果您確實必須在Python中使用ggplot,那么您必須安裝pandas版本0.19.2,但是我要提醒您不要降低您的pandas的級別,這樣您就可以使用一個較差的繪圖包。

使ggplot2(我猜還有Python的ggplot)改變游戲規(guī)則的是,它們使用“圖形語法”來構(gòu)造圖形?;镜那疤崾?,您可以實例化您的圖片,然后分別添加不同的功能,即標題、軸、數(shù)據(jù)點和趨勢線都是單獨添加的,具有各自的美學(xué)屬性。下面是一些ggplot代碼的簡單示例。首先,我們用ggplot實例化圖形,設(shè)置美學(xué)和數(shù)據(jù),然后添加點、主題和軸/標題標簽。

#All Salariesggplot(data=df, aes(x=season_start, y=salary,  colour=team)) +  geom_point() +  theme(legend.position="none") +   labs(title = 'Salary Over Time', x='Year', y='Salary ($)')

Python的可視化庫有哪些

Bokeh

Bokeh很漂亮。概念上類似于ggplot,它使用圖形語法來構(gòu)造圖形,Bokeh有一個易于使用的界面,可以制作非常專業(yè)的圖形和儀表板。

import pandas as pdfrom bokeh.plotting import figurefrom bokeh.io  import show# is_masc is a one-hot encoded dataframe of responses to  the question:# "Do you identify as masculine?"#Dataframe Prepcounts =  is_masc.sum()resps = is_masc.columns#Bokehp2 = figure(title='Do You  View Yourself As Masculine?',                   x_axis_label='Response',          y_axis_label='Count',                x_range=list(resps))p2.vbar(x=resps, top=counts,  width=0.6, fill_color='red',  line_color='black')show(p2)#Pandascounts.plot(kind='bar')

Python的可視化庫有哪些

上面的柱狀圖顯示了538位在最近的一次調(diào)查中對“你認為自己是男性嗎”這個問題的回答。第9-14行中的Bokeh代碼創(chuàng)建了一個優(yōu)雅的、專業(yè)的響應(yīng)計數(shù)直方圖,具有合理的字體大小、y標記和格式。我編寫的大部分代碼用于標記坐標軸和標題,以及給條形圖添加顏色和邊框。當(dāng)制作漂亮的,像樣的圖形時,我非常傾向于Bokeh  -很多美學(xué)工作已經(jīng)為我們做了!

Python的可視化庫有哪些

上面的藍色圖是上面要點的第17行上的一行代碼。這兩個直方圖具有相同的值,但用途不同。在一個探索性的設(shè)置中,與pandas一起寫一行來查看數(shù)據(jù)要方便得多,但是Bokeh的美學(xué)是相當(dāng)出色的。Bokeh提供的所有便利都可以在Matplotlib中進行定制,包括x軸標簽的角度、背景線、y軸擴展、字體大小/斜體/粗體等。下圖顯示了一些隨機的趨勢,使用了更多的自定義圖例和不同的線條類型和顏色:

Python的可視化庫有哪些

最后提一下,Bokeh也是一個制作交互式儀表板的好工具。

Plotly

Plotly是非常強大的,但設(shè)置和創(chuàng)建的數(shù)字需要很多時間,都不是直觀的。在花了大半個上午埋頭苦干之后,我去吃午飯,幾乎什么也沒看到。我創(chuàng)建了一個沒有軸標簽的條形圖和一個“散點圖”,其中的線條我無法刪除。一些值得注意的缺點有:

  • 它需要一個API密鑰和注冊,而不僅僅是一個pip安裝它

  • 繪制的數(shù)據(jù)/布局對象是獨特的圖片,并不直觀

  • 圖片布局對我不起作用(40行代碼什么都沒有!)

  • 然而,對于所有設(shè)置的缺點,也有優(yōu)點和變通方法:

  • 您可以在Plotly網(wǎng)站和Python環(huán)境中編輯圖片

  • 有很多對交互式圖形/儀表板的支持

  • Plotly與Mapbox合作,可以定制地圖

  • 有驚人的整體潛力

如果我只是用一些代碼來表達我的不滿,而不展示一些代碼和我能夠完成的工作,以及那些更有能力使用這個包的人所完成的工作,這對我來說是不公平的:

#plot 1 - barplot# **note** - the layout lines do nothing and trip no errorsdata = [go.Bar(x=team_ave_df.team,   y=team_ave_df.turnovers_per_mp)]layout = go.Layout(    title=go.layout.Title(                         text='Turnovers per Minute by Team', xref='paper',  x=0),                       xaxis=go.layout.XAxis(title = go.layout.xaxis.Title(                              text='Team',    font=dict( family='Courier New, monospace',                                      size=18, color='#7f7f7f'  )  )  ),                      yaxis=go.layout.YAxis(  title = go.layout.yaxis.Title(                              text='Average Turnovers/Minute',   font=dict(                                      family='Courier New, monospace',   size=18,                                       color='#7f7f7f'  )  )  ),     autosize=True,    hovermode='closest')py.iplot(figure_or_data=data, layout=layout,  filename='jupyter-plot', sharing='public',  fileopt='overwrite')#plot 2 - attempt at a scatterplotdata = [go.Scatter(x=player_year.minutes_played,  y=player_year.salary,   marker=go.scatter.Marker(color='red',  size=3))]layout = go.Layout(title="test",  xaxis=dict(title='why'),  yaxis=dict(title='plotly'))py.iplot(figure_or_data=data,  layout=layout, filename='jupyter-plot2', sharing='public')

Python的可視化庫有哪些

Python的可視化庫有哪些

總的來說,開箱即用的外觀看起來不錯,但是多次嘗試修復(fù)axis標簽,逐字復(fù)制文檔,都沒有產(chǎn)生任何變化。然而,正如我之前承諾過的,這里有一些圖片展示了它的潛力,以及為什么花幾個小時以上可能是值得的:

Python的可視化庫有哪些

Pygal

Pygal是一個不太為人所知的繪圖包,它與其他流行的包一樣,使用圖形框架的語法來構(gòu)造圖像。由于圖片對象非常簡單,所以它是一個相對簡單的包。使用Pygal非常簡單:

  • 實例化你的圖片

  • 使用圖形對象的屬性格式化

  • 使用figure. Add()符號將數(shù)據(jù)添加到圖形中

我在Pygal中遇到的主要問題是如何渲染圖形。我必須使用他們的render_to_file選項,然后在web瀏覽器中打開該文件,看看我構(gòu)建了什么。它最終是值得的,因為這些數(shù)字是互動的,有一個愉快的和容易定制的審美??偟膩碚f,這個包看起來不錯,但是有一些文件創(chuàng)建/渲染的怪癖限制了它的吸引力。

Python的可視化庫有哪些

Networkx

Networkx是分析和可視化圖形的一個很好的解決方案,盡管它是基于matplotlib的。圖形和網(wǎng)絡(luò)不是我的專業(yè)領(lǐng)域,但Networkx允許快速、簡單地用圖形表示連接的網(wǎng)絡(luò)。下面是我構(gòu)建的一個簡單圖的幾個不同的表示,以及從斯坦福SNAP下載的一些開始繪制小型Facebook網(wǎng)絡(luò)的代碼。

Python的可視化庫有哪些

我用顏色標注每個節(jié)點編號(1-10)的代碼如下:

options = {'node_color' : range(len(G)),               'node_size' :  300,    'width' : 1,    'with_labels' : False,              'cmap' :  plt.cm.coolwarm}nx.draw(G, **options)

Python的可視化庫有哪些

感謝各位的閱讀,以上就是“Python的可視化庫有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python的可視化庫有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI