[英]How to create interactive plot in Jupyter Notebook and Python
我有以下數據框。
CustID| Age |Gender|Smoking_history |Alcohol_history
1 |18-24| M | Non-smoker | <21 units per week
2 |43-48| F | Non-smoker | <21 units per week
3 |37-42| M | Unknown | <21 units per week
4 |18-24| F | Unknown | Unknown
5 |43-48| M | Previous smoker | <21 units per week
我創建了條形圖並使用了以下代碼:
df.groupby(['吸煙史','年齡']).size().unstack().plot(kind='bar',stacked=True) plt.show()
需要注意的是,年齡是一個數值范圍值,而“吸煙史”是字符串值。
它在 Jupyter Notebook 中創建堆疊條形圖,並根據吸煙史顯示不同年齡組的人數。
我想讓它具有交互性,以便我可以從下拉列表中選擇列。
如何通過在 Jupyter Notebook 中使用 ipywidgets 來做到這一點?
** 有沒有辦法在繪圖中使用非數字列?
實際上,創建它並沒有那么難。 首先,您必須導入所有必需的小部件庫。 庫小部件保存 ui 元素的定義。 每次您在元素上觸發事件時,交互式庫都會調用您的自定義函數——在我們的例子中選擇了不同的列。 每次函數被調用時,我們只返回一個新圖。 請注意,您應該只從函數內部的數據集中讀取數據。 改變它可能會在以后的細胞中引入副作用。
import ipywidgets as widgets
from ipywidgets import interact, interactive, fixed, interact_manual
drop_down=widgets.Dropdown(
options=data2.columns.values,
value='Age',
description='Column:',
disabled=False,
)
def update_barchart(columns):
return data2.groupby(columns).size().plot(kind='bar',stacked=True)
interactive(update_barchart, columns=drop_down)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.