互動式儀表板!Python輕鬆完成!⛵
- 💡 作者:韓信子@ShowMeAI
- 📘 資料分析實戰系列:https://www.showmeai.tech/tutorials/40
- 📘 本文地址:https://www.showmeai.tech/article-detail/410
- 📢 宣告:版權所有,轉載請聯絡平臺與作者並註明出處
- 📢 收藏ShowMeAI檢視更多精彩內容
💡 引言
在本篇內容中,ShowMeAI將給大家講解使用 📘ipywidget 模組建立互動式儀表板。
我們本次用到的資料集是 🏆Kaggle 的 CardioGoodFitness,大家可以通過 ShowMeAI 的百度網盤地址下載。
🏆 實戰資料集下載(百度網盤):公眾號『ShowMeAI研究中心』回覆『實戰』,或者點選 這裡 獲取本文 [41]ipywidgets:使用Python建立互動式儀表板 『CardioGoodFitness 資料集』
⭐ ShowMeAI官方GitHub:https://github.com/ShowMeAI-Hub
首先,我們需要匯入所需的模組。
python
import pandas as pd
import ipywidgets
import seaborn as sns
import matplotlib.pyplot as plt
我們先看一下資料變數。資料中包含 2 個連續變數,收入 Income 和英里數 Miles。
💡 看板Demo實現:瞭解Miles的分佈
💦 準備工作
📘ipywidget 模組包含了很多可用的小部件。在這個演示中,我們將使用下拉框選擇類別資料,以便更好地瞭解里程分佈。我們將選擇箱線圖來繪製每個類別的里程資料。
```python %matplotlib widget
Drop down for boxplot variable to be select
drop_down_name = ipywidgets.Dropdown(options=list(df.drop(['Miles','Income'],axis=1).columns), value=list(df.drop(['Miles','Income'],axis=1).columns)[0], description='Columns:', disabled=False) ```
接下來,我們可以建立一個函式,允許輸入用於繪製英里箱線圖的列名稱。
```python
selected_vals = column used to plot
def boxplot(selected_vals): plt.close('all') fig = plt.figure(figsize=(9,5)) plt.style.use('seaborn') sns.boxplot(df[selected_vals],df['Miles']) plt.title('Boxplot of miles for' + selected_vals) plt.show() ```
之後,我們需要建立一個 📘layout/佈局,Jupyter 互動式小部件具有一個 layout 屬性,包含了許多影響小部件佈局的 CSS 屬性。
最簡單的自定義是 HBox,它是一個水平佈局的選擇器,而 VBox 代表一個垂直佈局的選擇器。下面是 HBox 或 VBox 佈局的示例。
下面我們準備輸入和輸出佈局的顯示。
```python
layout for filtering
ui2 = ipywidgets.HBox([drop_down_name])
link your function to your input
out2 = ipywidgets.interactive_output(boxplot, {'selected_vals' : drop_down_name})
display your box plot
display(ui2,out2) ```
上面散點圖的輸入是 x、y 和色調。因為每個變數都是一個選擇,我們使用了下拉框。
💦 輸入設計、選項、值和要定義的描述
```python
dropbox select x axis
drop_down_x = ipywidgets.Dropdown(options=list(df.columns), value=list(df.columns)[0], description='X variable:', disabled=False)
dropbox select y axis
drop_down_y = ipywidgets.Dropdown(options=list(['Miles','Income']), value=list(['Miles','Income'])[0], description='Y variable:', disabled=False)
dropbox select category
drop_down_category= ipywidgets.Dropdown(options=list(df.drop(['Miles','Income'],axis=1).columns), value=list(df.drop(['Miles','Income'],axis=1).columns)[0], description='Category:', disabled=False) ```
💦 散點圖繪製
```python
scatter plot function
def scatter(x,y,category): plt.close('all') fig = plt.figure(figsize=(9,5)) plt.style.use('seaborn') sns.scatterplot(data=df,x=x,y=y,hue=category) plt.title('Scatterplot of ' +x+' versus '+ y) #plt.xlabel('Date') plt.show() ```
💦 顯示HBox或VBox的選擇器佈局
```python
display the layout of filtering
ui3 = ipywidgets.HBox([drop_down_x,drop_down_y,drop_down_category]) ```
💦 將繪圖與選擇器相關聯
```python
related the plot link to filtering
out3 = ipywidgets.interactive_output(scatter, {'x' : drop_down_x, 'y': drop_down_y, 'category':drop_down_category}) ```
💦 顯示選擇後的輸入和輸出
```python
display the input and output
display(ui3,out3) ```
參考資料
推薦閱讀
- 🌍 資料分析實戰系列:https://www.showmeai.tech/tutorials/40
- 🌍 機器學習資料分析實戰系列:https://www.showmeai.tech/tutorials/41
- 🌍 深度學習資料分析實戰系列:https://www.showmeai.tech/tutorials/42
- 🌍 TensorFlow資料分析實戰系列:https://www.showmeai.tech/tutorials/43
- 🌍 PyTorch資料分析實戰系列:https://www.showmeai.tech/tutorials/44
- 🌍 NLP實戰資料分析實戰系列:https://www.showmeai.tech/tutorials/45
- 🌍 CV實戰資料分析實戰系列:https://www.showmeai.tech/tutorials/46
- 🌍 AI 面試題庫系列:https://www.showmeai.tech/tutorials/48
- 感謝飛書放過幕布!100個GPT-4實戰案例;GPT-4免費平替Poe;AI繪畫新手指南之SD篇;new Bing靠譜教程 | ShowMeAI日報
- whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵
- 脈脈瘋傳!2023年程式設計師生存指南;多款prompt效率加倍工具;提示工程師最全祕籍;AI裁員正在發生 | ShowMeAI日報
- 中國風?古典系?AI中文繪圖創作嚐鮮!⛵
- Python中內建資料庫!SQLite使用指南!
- Pandas中你一定要掌握的時間序列相關高階功能
- 資料科學家賺多少?資料全分析與視覺化 ⛵
- 互動式儀表板!Python輕鬆完成!⛵
- ChatGPT!我是你的破壁人;比爾·蓋茨不看好Web3與元宇宙;FIFA押中4屆世界盃冠軍;GitHub今日熱榜 | ShowMeAI資訊日報
- ChatGPT要收費了;華爾街大裁員;阿里2023十大科技趨勢;小紅書元宇宙虛擬服飾被吐槽;GitHub今日熱榜 | ShowMeAI資訊日報
- AI創業時代!這9個方向有錢途;AIGC再添霸榜應用Lensa;美團SemEval2022冠軍方法分享;醫學影象處理工具箱… | ShowMeAI資訊日報
- 噓!P站資料分析年報;各省市疫情感染進度條;愛奇藝推出元宇宙App;You推出AI聊天機器人;GitHub今日熱榜 | ShowMeAI資訊日報
- 美國公司裁員潮時間線◉科技寒冬視覺化;3份報告回顧中國開發者2022;自動駕駛下半場,誰會衝出重圍 | ShowMeAI每週通訊 #005-01.07
- 副業月入過萬?資料有話說;掃地機器人發展到哪步了;疫情後要不要重返辦公室;淘寶元宇宙直播間;GitHub今日熱榜 | ShowMeAI資訊日報
- 大戰谷歌!微軟Bing引入ChatGPT;羊了個羊40萬年薪招研發;Debian徹底移除Python2;GitHub今日熱榜 | ShowMeAI資訊日報
- 酸了!樂視工作制改為四天半;高通新年裁員;AI繪畫公司開始倒閉;網易入股張藝謀元宇宙公司;GitHub今日熱榜 | ShowMeAI資訊日報
- 要麼幹要麼滾!推特開始裁員了;深度學習產品應用·隨書程式碼;可分離各種樂器音源的工具包;Transformer教程;前沿論文 | ShowMeAI資訊日報
- 真實世界的人工智慧應用落地——OpenAI篇 ⛵
- 陽過→陽康,資料裡的時代側影;谷歌慌了!看各公司如何應對ChatGPT;兩份優質AI年報;本週技術高光時刻 | ShowMeAI每週通訊 #003-12.24
- 用魔法打敗魔法!這件毛衣讓攝像頭看不到你;兩款酷炫的AI寫作軟體;快如閃電的B站下載工具;基於擴散模型的蛋白質設計 | ShowMeAI資訊日報