python matplotlib模块: stackplot(堆

2020-07-15  本文已影响0人  _Mirage

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

数据集:

# 初始化横坐标的所有值(这里表示为时间的变化)
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
上一篇 下一篇

猜你喜欢

热点阅读