堆叠图可以很方便的比较数据间不同情况下的差异(分工比例等)。
数据集:
# 初始化横坐标的所有值(这里表示为时间的变化)
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
网友评论