成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

再見,可視化!你好,Pandas!

開發 后端
大家在用Python做數據分析時,正常的做法是用先pandas先進行數據處理,然后再用Matplotlib、Seaborn、Plotly、Bokeh等對dataframe或者series進行可視化操作。

用Python做數據分析離不開pandas,pnadas更多的承載著處理和變換數據的角色,pands中也內置了可視化的操作,但效果很糙。

因此,大家在用Python做數據分析時,正常的做法是用先pandas先進行數據處理,然后再用Matplotlib、Seaborn、Plotly、Bokeh等對dataframe或者series進行可視化操作。

但是說實話,每個可視化包都有自己獨特的方法和函數,經常忘,這是讓我一直很頭疼的地方。

好消息來了!從最新的pandas版本0.25.3開始,不再需要上面的操作了,數據處理和可視化完全可以用pandas一個就全部搞定。

pandas現在可以使用Plotly、Bokeh作為可視化的backend,直接實現交互性操作,無需再單獨使用可視化包了。

下面我們一起看看如何使用。

1. 激活backend

在import了pandas之后,直接使用下面這段代碼激活backend,比如下面要激活plotly。 

  1. pd.options.plotting.backend = 'plotly' 

目前,pandas的backend支持以下幾個可視化包。

  •  Plotly
  •  Holoviews
  •  Matplotlib
  •  Pandas_bokeh
  •  Hyplot

2. Plotly backend

Plotly的好處是,它基于Javascript版本的庫寫出來的,因此生成的Web可視化圖表,可以顯示為HTML文件或嵌入基于Python的Web應用程序中。

下面看下如何用plotly作為pandas的backend進行可視化。

如果還沒安裝Plotly,則需要安裝它pip intsall plotly。如果是在Jupyterlab中使用Plotly,那還需要執行幾個額外的安裝步驟來顯示可視化效果。

首先,安裝IPywidgets。 

  1. pip install jupyterlab "ipywidgets>=7.5" 

然后運行此命令以安裝Plotly擴展。 

  1. jupyter labextension install jupyterlab-plotly@4.8.1 

示例選自openml.org的的數據集,鏈接如下:

數據鏈接:https://www.openml.org/d/187

這個數據也是Scikit-learn中的樣本數據,所以也可以使用以下代碼將其直接導入。 

  1. import pandas as pd  
  2. import numpy as np  
  3. from sklearn.datasets import fetch_openml  
  4. pd.options.plotting.backend = 'plotly'  
  5. X,y = fetch_openml("wine", version=1as_frame=Truereturn_X_y=True 
  6. data = pd.concat([X,y], axis=1 
  7. data.head() 

該數據集是葡萄酒相關的,包含葡萄酒類型的許多功能和相應的標簽。數據集的前幾行如下所示。

下面使用Plotly backend探索一下數據集。

繪圖方式與正常使用Pandas內置的繪圖操作幾乎相同,只是現在以豐富的Plotly顯示可視化效果。

下面的代碼繪制了數據集中兩個要素之間的關系。 

  1. fig = data[['Alcohol', 'Proline']].plot.scatter(y='Alcohol'x='Proline' 
  2. fig.show() 

如果將鼠標懸停在圖表上,可以選擇將圖表下載為高質量的圖像文件。

我們可以結合Pandas的groupby函數創建一個條形圖,總結各類之間Hue的均值差異。 

  1. data[['Hue','class']].groupby(['class']).mean().plot.bar() 

將class添加到我們剛才創建的散點圖中。通過Plotly可以輕松地為每個類應用不同的顏色,以便直觀地看到分類。 

  1. fig = data[['Hue', 'Proline', 'class']].plot.scatter(x='Hue'y='Proline'color='class'title='Proline and Hue by wine class' 
  2. fig.show() 

3. Bokeh backend

Bokeh是另一個Python可視化包,也可提供豐富的交互式可視化效果。Bokeh還具有streaming API,可以為比如金融市場等流數據創建實時可視化。

pandas-Bokeh的GitHub鏈接如下:

https://github.com/PatrikHlobil/Pandas-Bokeh

老樣子,用pip安裝即可,pip install pandas-bokeh。

為了在Jupyterlab中顯示Bokeh可視化效果,還需要安裝兩個新的擴展。 

  1. jupyter labextension install @jupyter-widgets/jupyterlab-manager  
  2. jupyter labextension install @bokeh/jupyter_bokeh 

下面我們使用Bokeh backend重新創建剛剛plotly實現的的散點圖。 

  1. pd.options.plotting.backend = 'pandas_bokeh'  
  2. import pandas_bokeh  
  3. from bokeh.io import output_notebook  
  4. from bokeh.plotting import figure, show   
  5. output_notebook()  
  6. p1 = data.plot_bokeh.scatter(x='Hue',   
  7.                               y='Proline',   
  8.                               category='class' 
  9.                               title='Proline and Hue by wine class' 
  10.                               show_figure=False 
  11. show(p1) 

關鍵語句就一行代碼,非常快捷,交互式效果如下。

Bokeh還具有plot_grid函數,可以為多個圖表創建類似于儀表板的布局,下面在網格布局中創建了四個圖表。 

  1. output_notebook()  
  2. p1 = data.plot_bokeh.scatter(x='Hue',   
  3.                               y='Proline',   
  4.                               category='class' 
  5.                               title='Proline and Hue by wine class' 
  6.                               show_figure=False 
  7. p2 = data[['Hue','class']].groupby(['class']).mean().plot.bar(title='Mean Hue per Class' 
  8. df_hue = pd.DataFrame({  
  9.     'class_1': data[data['class'] == '1']['Hue'],  
  10.     'class_2': data[data['class'] == '2']['Hue'],  
  11.     'class_3': data[data['class'] == '3']['Hue']},  
  12.     columns=['class_1', 'class_2', 'class_3'])   
  13. p3 = df_hue.plot_bokeh.hist(title='Distribution per Class: Hue' 
  14. df_proline = pd.DataFrame({  
  15.     'class_1': data[data['class'] == '1']['Proline'],  
  16.     'class_2': data[data['class'] == '2']['Proline'],  
  17.     'class_3': data[data['class'] == '3']['Proline']},  
  18.     columns=['class_1', 'class_2', 'class_3'])   
  19. p4 = df_proline.plot_bokeh.hist(title='Distribution per Class: Proline' 
  20. pandas_bokeh.plot_grid([[p1, p2],   
  21.                         [p3, p4]], plot_width=450

可以看到,可視化的部分都是在pandas的dataframe基礎上一行代碼搞定,最后plot_grid完成布局。

4. 總結

在內置的Pandas繪圖功能增加多個第三方可視化backend,大大增強了pandas用于數據可視化的功能,今后可能真的不需再去學習眾多可視化操作了,使用pandas也可以一擊入魂! 

 

責任編輯:龐桂玉 來源: Python編程
相關推薦

2021-01-13 11:13:46

ExcelPandas代碼

2022-08-24 13:39:46

PandasGUIExcel

2015-03-16 11:09:28

MongoDBPostgreSQL數據遷移

2021-04-23 09:09:19

GraphQLREST查詢

2012-08-01 09:50:09

HotmailOutlook微軟

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2019-02-01 10:35:33

PythonGo語言編程語言

2021-07-27 05:56:53

CrocFTPSFTP

2023-02-15 08:24:12

數據分析數據可視化

2018-01-02 08:40:19

云安全云遷移數據泄露

2023-11-28 17:24:45

2009-03-30 08:44:22

微軟Windows 7操作系統

2017-10-14 13:54:26

數據可視化數據信息可視化

2009-04-21 14:26:41

可視化監控IT管理摩卡

2022-08-26 09:15:58

Python可視化plotly

2011-01-07 18:05:37

QQ騰訊移動互聯網

2024-01-03 18:45:35

Pandas繪圖函數

2015-08-20 10:06:36

可視化

2014-11-27 14:26:46

蘋果iPhone停產

2021-06-02 22:25:26

2G5G運營商
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费国产视频在线观看 | 国产在线二区 | 久久久国产一区 | 日韩在线免费 | 视频在线一区二区 | 韩国av网站在线观看 | 色综合久 | 成年免费大片黄在线观看岛国 | www.日本在线观看 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 中文字幕一区二区三区不卡 | 国产精品久久久久无码av | 日韩精品一区二区三区在线观看 | 成人免费视频久久 | 中文字幕在线视频免费视频 | 亚洲国产乱码 | 精品国产一区二区三区久久 | 日本在线小视频 | 毛片网站在线观看视频 | 国产精品久久久久久久久久久久 | 亚洲综合无码一区二区 | 国产 日韩 欧美 在线 | 成人av一区二区三区 | 免费视频二区 | 亚洲国产成人精品久久久国产成人一区 | 久久久91| 久久久精品一区二区三区四季av | 精品成人一区二区 | 欧美一级黄视频 | 天天操夜夜骑 | 蜜月va乱码一区二区三区 | 国产成人精品免高潮在线观看 | 成人欧美一区二区三区在线观看 | 久久精品一区二区三区四区 | 毛片a级 | 成年女人免费v片 | 国产欧美久久精品 | 国产欧美一区二区三区在线看 | 黄视频免费观看 | 亚洲视频 欧美视频 | 国产精品一区免费 |