簡體   English   中英

如何在 Jupyter Notebook 和 Python 中創建交互式繪圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM