今天我们再来讲解一下Python使用Plotly绘图工具如何绘制直方图
使用plotly绘制直方图需要用到graph_objs包中的Histogram函数
我们将数据赋值给函数中的x变量,x = data
即可绘制出直方图如果将数据赋值给y变量,
则会,绘制出水平直方图。
下面我们来看个基本例子
importplotly as pyimportplotly.graph_objs as goimportnumpy 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随机生成
importplotly as pyimportplotly.graph_objs as goimportnumpy 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随机生成相同的正态分布数据图的叠加效果
importplotly as pyimportplotly.graph_objs as goimportnumpy 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')
运行上诉代码,我们得到了如上图所示的图例,可以看到,两部分重叠在一个区域内
今天就先想到这里哈,感谢大家阅读,欢迎点赞转发。