今天我們再來講解一下Python使用Plotly繪圖工具如何繪制直方圖
使用plotly繪制直方圖需要用到graph_objs包中的Histogram函數
我們將數據賦值給函數中的x變量,x = data
即可繪制出直方圖如果將數據賦值給y變量,
則會,繪制出水平直方圖。
下面我們來看個基本例子
import plotly as py import plotly.graph_objs as go import numpy as np pyplt = py.offline.plot s1 = np.random.RandomState(1) x = s1.randn(1000) data = [go.Histogram(x=x, histnorm = 'probability')] # y = x 水平直方圖,histnorm='probability' y軸顯示概率,沒有則顯示數目 pyplt(data, filename='tmp/1.html')
運行上訴代碼,我們可以得到一個如上圖所示的基本直方圖
數據是有numpy隨機生成的
histnorm是Histogram函數的另外一個屬性,默認狀態下表示直方圖
縱坐標落入區間內的樣本數目
如果我們設定histnorm = 'probability' 則縱坐標變為落入區間內的樣本頻率
重疊垂直直方圖
我們在說說重疊垂直直方圖的繪制
需要在Layout中設置barmode屬性,將其改為‘overlay’
如果我們不對其進行設置,會出現Plotly默認將兩個直方圖的柱狀寬度強制變窄
以滿足重疊部分的顯示需求。
下面我們來看下,數據有Numpy隨機生成
import plotly as py import plotly.graph_objs as go import numpy as np pyplt = py.offline.plot s1 = np.random.RandomState(1) x0 = s1.randn(1000) x1 = s1.chisquare(5,1000) trace1 = go.Histogram( x = x0, histnorm = 'probability', opacity = 0.75 ) trace2 = go.Histogram( x = x1, histnorm = 'probability', opacity = 0.75 ) data = [trace1, trace2] layout = go.Layout(barmode='overlay') fig = go.Figure(data = data, layout = layout) pyplt(fig, filename='tmp/1.html')
運行上訴代碼,我們可以得到,如圖所示的重疊直方圖,藍色部分和橘黃色部分重疊的位置顯示。
層疊直方圖
繪制層疊直方圖同樣需要設置barmode屬性,將其設置為‘stack’
下面我們看一下使用Numpy隨機生成相同的正態分布數據圖的疊加效果
import plotly as py import plotly.graph_objs as go import numpy as np pyplt = py.offline.plot s1 = np.random.RandomState(1) x0 = s1.randn(1000) x1 = s1.randn(1000) trace0 = go.Histogram( x=x0 ) trace1 = go.Histogram( x=x1 ) data = [trace0, trace1] layout = go.Layout(barmode='stack') fig = go.Figure(data=data, layout=layout) pyplt(fig, filename='tmp/1.html')
運行上訴代碼,我們得到了如上圖所示的圖例,可以看到,兩部分重疊在一個區域內
今天就先想到這里哈,感謝大家閱讀,歡迎點贊轉發。