• 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')

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

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

  • 相关阅读:
    CSS 处理table表格长度溢出问题 解决table导致的横向滚动条问题
    NodeRED中解析高德地图天气api的json数据显示天气仪表盘
    【20220325】连岳摘抄
    【20220324】好过、坏过,还是要过
    使用格拉姆角场(GAF)以将时间序列数据转换为图像
    LSTM 已死,事实真是这样吗?
    TensorFlow和Pytorch中的音频增强
    论文回顾:Batch Augmentation,在批次中进行数据扩充可以减少训练时间并提高泛化能力
    特征工程:基于梯度提升的模型的特征编码效果测试
    Linux中常用Shell命令
  • 原文地址:https://www.cnblogs.com/ws17345067708/p/10654991.html
Copyright © 2020-2023  润新知