美文网首页
python matplotlib模块: stackplot(堆

python matplotlib模块: stackplot(堆

作者: _Mirage | 来源:发表于2020-07-15 06:33 被阅读0次

    堆叠图可以很方便的比较数据间不同情况下的差异(分工比例等)。

    数据集:

    # 初始化横坐标的所有值(这里表示为时间的变化)
    minutes = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    # 初始化所有不同数据集纵坐标表示的值(可以表示团队个人一天工作时间的分配)
    player1 = [8, 6, 5, 5, 4, 2, 1, 1, 0]
    player2 = [0, 1, 2, 2, 2, 4, 4, 4, 4]
    player3 = [0, 1, 1, 1, 2, 2, 3, 3, 4]
    

    源码:

    from matplotlib import pyplot as plt
    
    # 使用fivethirtyeight这个超漂亮的风格
    plt.style.use("fivethirtyeight")
    # 初始化横坐标的所有值(这里表示为时间的变化)
    minutes = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    # 初始化所有不同数据集纵坐标表示的值(可以表示团队个人一天工作时间的分配)
    player1 = [8, 6, 5, 5, 4, 2, 1, 1, 0]
    player2 = [0, 1, 2, 2, 2, 4, 4, 4, 4]
    player3 = [0, 1, 1, 1, 2, 2, 3, 3, 4]
    
    labels = ['player1', 'player2', 'player3']
    colors = ['#6d904f', '#fc4f30', '#008fd5']
    
    # stackplot的特点就是可易很方便的看出不同数据集之间每一个特定点的差异
    # 注意传入的多个可迭代对象的维度应该相同
    plt.stackplot(minutes, player1, player2, player3, labels=labels, colors=colors)
    # legend接受loc参数可以改变显示标签的放置位置, 可以用一个元组加两个数来表示距离坐标轴原点的百分比距离,\
    #  也可以使用字符串表示:
    '''
        best
        upper right
        upper left
        lower left
        lower right
        right
        center left
        center right
        lower center
        upper center
        center
        例: plt.legend(loc='upper left')
    '''
    plt.legend(loc=(0.07, 0.05))
    plt.title("First Stack Plot")
    # 美化输出
    plt.tight_layout()
    plt.show()
    
    # Colors:
    # Blue = #008fd5
    # Red = #fc4f30
    # Yellow = #e5ae37
    # Green = #6d904f
    

    运行结果:


    图片.png

    相关文章

      网友评论

          本文标题:python matplotlib模块: stackplot(堆

          本文链接:https://www.haomeiwen.com/subject/rterhktx.html