python画直方图代码-Python使用Plotly绘图工具,绘制直方图

今天我们再来讲解一下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')

1569266-20190404144002542-255105727.png

运行上诉代码,我们可以得到一个如上图所示的基本直方图

数据是有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')

1569266-20190404144739197-1560088678.png

运行上诉代码,我们可以得到,如图所示的重叠直方图,蓝色部分和橘黄色部分重叠的位置显示。

层叠直方图

绘制层叠直方图同样需要设置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')

1569266-20190404145348519-816448496.png

运行上诉代码,我们得到了如上图所示的图例,可以看到,两部分重叠在一个区域内

今天就先想到这里哈,感谢大家阅读,欢迎点赞转发。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值