使用 graph_objects 類在 Plotly 中建立直方圖
直方圖是資料集分佈的圖形表示,可以使用 Plotly(一個 Python 庫,其中包含一個稱為 graph_objects 的類)建立,我們可以使用該類建立直方圖。直方圖有助於理解資料集的形狀,其中還包括異常值、集中趨勢和離散度。
Plotly 是一個 Python 庫,允許我們以各種格式建立互動式視覺化,包括散點圖、折線圖和直方圖。graph_objects 類提供了一個高階介面來建立一些複雜的圖表,並允許我們自定義圖表的每個方面。在本文中,我們將探討如何使用 PLotly graph_objects 類建立直方圖。
plotly.graph_object 類
graph_objects 類是 Plotly 的一個子庫,允許使用者使用更面向物件的方法建立和修改視覺化。使用 graph_objects,使用者可以建立一個 Figure 物件,並將各種圖表型別作為 Traces 新增到其中。例如,要使用 graph_objects 建立直方圖,我們可以建立一個 Figure 物件並向其中新增一個 Histogram 軌跡。
名為 graph_objects 的類通常匯入為 go,幷包含一個自動生成的 Python 類層次結構,該層次結構表示圖形模式中的非葉子節點。“graph_objects”一詞指的是這些類的例項。
語法
plotly.graph_objects.Table(arg=None, cells=None, columnorder=None, columnordersrc=None, columnwidth=None, columnwidthsrc=None, customdata=None, customdatasrc=None, domain=None, header=None, hoverinfo=None, hoverinfosrc=None, hoverlabel=None, ids=None, idssrc=None, legendgrouptitle=None, legendrank=None, legendwidth=None, meta=None, metasrc=None, name=None, stream=None, uid=None, uirevision=None, visible=None, **kwargs)
使用 graph_objects 類在 Plotly 中建立直方圖
使用 graph_objects 建立直方圖(透過生成隨機資料)
按照以下步驟使用 graph_objects 類在 Plotly 中建立直方圖,方法是使用 numpy 建立隨機資料:
匯入 plotly.graph_objects 模組,其中包含我們將用於建立繪圖的 Histogram 類以及 Figure 類。
使用 numpy.random.normal 函式生成一些隨機資料,該函式從正態分佈生成隨機數。
使用 Histogram 類建立直方圖,並將我們的隨機資料作為 x 引數傳遞。這將建立一個具有預設設定的直方圖,我們稍後可以對其進行自定義。
使用 Figure 類的 update_layout 方法向繪圖新增軸標籤和標題。
使用 title 引數指定標題,使用 xaxis_title 和 yaxis_title 引數指定 x 軸和 y 軸標籤。
使用 Figure 類的 show 方法在新視窗中顯示我們的繪圖。
示例
import plotly.graph_objects as go import numpy as np # Generate some random data np.random.seed(123) x = np.random.normal(size=1000) # Create the histogram using graph_objects fig = go.Figure(data=[go.Histogram(x=x)]) # Add axis labels and title fig.update_layout( title="Histogram of Random Data", xaxis_title="Value", yaxis_title="Count", ) # Show the plot fig.show()
輸出
使用 graph_objects 建立直方圖(內建資料集)
按照以下步驟使用 graph_objects 類建立直方圖,使用 Python 的 Seaborn 庫中存在的 tips 資料集:
匯入必要的庫,包括 plotly.graph_objects 模組和 seaborn 模組。
使用 load_dataset('tips') 函式載入內建的 tips 資料集。
使用 go.Histogram() 函式建立四種不同型別的直方圖。
第一個直方圖是使用 Total Bill 列的基本直方圖物件。
第二個直方圖是使用 Tip 列的累積直方圖物件,其中 cumulative_enabled 引數設定為 True。
第三個直方圖是使用 Size 列的歸一化直方圖物件,其中 histnorm 引數設定為 'probability'。
第四個直方圖是使用 Tip 和 Size 列的堆疊直方圖物件,具有不同的標記顏色和每個列的圖例名稱。
使用 go.Figure() 函式建立 Figure 物件,並將所有四個直方圖新增到其中。
使用 update_layout() 方法自定義圖形的佈局,以新增標題和軸標籤。
使用 show() 方法顯示圖形。
示例
import seaborn as s import plotly.graph_objects as go # Load the built-in tips dataset d= s.load_dataset('tips') # Create a basic histogram object using the Total Bill column hist1 = go.Histogram(x=d['total_bill'], nbinsx=30) # Create a cumulative histogram object using the Tip column hist2 = go.Histogram(x=d['tip'], nbinsx=20, cumulative_enabled=True) # Create a normalized histogram object using the Size column hist3 = go.Histogram(x=d['size'], nbinsx=5, histnorm='probability density') # Create a stacked histogram object using the Tip and Size columns hist4 = go.Histogram(x=d['tip'], y=d['size'], nbinsx=10, nbinsy=5, histfunc='sum', histnorm='probability') # Create a figure object and add all histograms to it tfig = go.Figure(data=[hist1, hist2, hist3, hist4]) # Customize the layout of the figure tfig.update_layout( title='Histograms of Tips Dataset', xaxis_title='Values', yaxis_title='Frequency', barmode='overlay', bargap=0.1, bargroupgap=0.1 ) # Display the figure tfig.show()
輸出
使用 Total Bill 列的基本直方圖物件:
使用 Tip 列的累積直方圖物件
使用 Size 列的歸一化直方圖物件:
使用 Tip 和 Size 列的堆疊直方圖物件:
結論
總之,Plotly 中的 graph_objects 類為我們提供了一個最佳化且強大的工具來建立可自定義的視覺化,包括直方圖。我們知道,使用 graph_objects,我們可以輕鬆生成不同型別的直方圖(基本、歸一化、累積、堆疊),使用內建資料集,或者甚至在使用者建立的資料集上,並根據需要自定義箱數、圖例、顏色和其他引數。生成的視覺效果是互動式的,允許使用者放大、平移和懸停在資料點上以獲取更多資訊。