儘管Matplotlib
可以滿足我們在Python中繪製圖形時的所有需求,但有時使用它創建漂亮的圖表有時會很耗時。好吧,有時候我們可能想向老闆展示一些東西,以便擁有一些漂亮且互動的情節。
有很多出色的庫可以做到這一點, Bokeh
就是其中之一。但是,可能還需要一些時間來學習如何使用此類庫。實際上,已經有人爲我們解決了這個問題。這是一個名爲的庫Pandas-Bokeh
,該庫直接使用Pandas並
使用Bokeh
渲染數據。語法非常簡單,我相信您可以立即開始使用它!
條形圖示例
讓我使用一個示例來演示該庫。
首先,我們需要使用安裝庫pip
。
pip install pandas_bokeh
安裝後,我們需要導入numpy
,pandas
當然還有pandas_bokeh
庫。
import numpy as np
import pandas as pd
import pandas_bokeh
我想生成一些隨機數據用於演示。假設我們有一個電子商務網站的數據集。數據集包含2011年至2010年三個類別的銷售額。讓我們使用Numpy生成此數據集。
df = pd.DataFrame({
'Year':np.arange(2011,2021),
'Category-A':np.random.uniform(9000,15000,10),
'Category-B':np.random.uniform (
9000,15000,10 ),'Category-C':np.random.uniform(9000,15000,10)
})
現在,我們在Pandas
數據框中有數據。在開始用於pandas_bokeh
繪製數據之前,我們需要將輸出設置爲筆記本,這將適用於Jupyter / iPython
筆記本。我將在後面解釋爲什麼我們需要這樣做,這是因爲pandas_bokeh
支持其他輸出位置。
pandas_bokeh.output_notebook()
好的。我們現在可以繪製數據框。
df.plot_bokeh(
kind='bar',
x='Year',
y=['Category-A', 'Category-B', 'Category-C'],
xlabel='Category',
ylabel='Annual Sales',
title='Annual Sales by Category'
)
- kind您想繪製哪種類型的圖表?當前,pandas_bokeh支持以下圖表類型:線,點,步,散點圖,條形圖,直方圖,面積,餅圖等。
- x和y簡單地輸入Pandas數據框的列名稱
- xlabel並且ylabelx軸和y軸的標籤
- title 圖表標題.
因此,您已經看到創建這樣一個美麗的情節是多麼容易。更重要的是,它是交互式的。以下是官方GitHub
存儲庫中的GIF
。
高級參數
該庫還支持許多高級參數,如果需要的話,這些參數使我們可以自定義繪圖。
這是另一個使用相同數據集但使用折線圖繪製數據的示例。
df.plot_bokeh.line(
x='Year',
y=['Category-A', 'Category-B', 'Category-C'],
figsize=(900, 500),
ylim=(5000, 20000),
zooming=False,
panning=False
)
請注意,這裏我使用df.plot_bokeh.line(...)
等價於df.plot_bokeh(kind='line', ...)
。
figsize
在元組中定義圖的大小(寬度,高度)xlim
和分別ylim
定義x軸和y軸的默認範圍。在這裏,我僅設置y軸。zooming
啓用/禁用縮放手勢panning
啓用/禁用平移手勢
設置輸出爲HTML
`
`
除了Jupyter Notebook,我們還可以將輸出設置爲HTML文件。因此,該圖表將被保存並輸出到可以保留和分發的HTML文件中。
在本文中,我演示瞭如何使用該pandas_bokeh
庫以極其簡單的代碼但具有交互功能的精美演示來端對端繪製Pandas數據框。
事實證明,當您有許多特殊的渲染要求時,該庫可能無法滿足您的所有需求,但是當您只想爲數據集構建典型圖表時,它是一個很好的庫。