Python使用Plotly繪圖工具,繪制直方圖


今天我們再來講解一下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')

運行上訴代碼,我們得到了如上圖所示的圖例,可以看到,兩部分重疊在一個區域內

今天就先想到這里哈,感謝大家閱讀,歡迎點贊轉發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM