我正在尝试创建一个数字,显示一些关键绩效指标如何在两个指标的三个时期内呈现趋势。
我已经设法通过轴测量指标来绘制三个时期的KPI(每种颜色都是不同的颜色),但是我仍然需要一种方法来突出显示每个KPI的周期。我的意图是在每个标记气泡中都有一个数字(1,2或3),但是我无法正确分层以保持整洁。
这就是目前的样子
我遇到的问题是,即使注释位于初始循环内,图表也会在图表顶部呈现所有注释。我很好地将元素放在另一个上面,但是我想在与标记相同的图层上的每个标记上进行注释,这样如果堆叠了三个点,则只有顶部标记和数字可见。
我可以将注释浮动,但我计划为不同的业务领域生成一些这样的注释,因此我想要一种格式,使用不同的数据保持相对整洁。
数据的结构为df,名为“ps3_trends”,如下所示:
['KPI','星期六','排名','S']
KPI为索引,S = {1,2,3}表示期间。
我用来绘制和注释的代码如下:
for i in kpis:
x = ps3_trends[ps3_trends.index == i].Sat
y = ps3_trends[ps3_trends.index == i].Rank
l = ps3_trends[ps3_trends.index == i].S
plt.plot(x, y, marker = 'o', markersize = 18
for xs, ys, ls in zip(x, y, l):
plt.annotate(ls, xy = (xs, ys), xytext = (0,0),
textcoords = 'offset points', ha = 'center',
va = 'center', color = 'white', fontweight = 'bold',
fontsize = '12)
想知道是否有办法让matplotlib生成图,同时注释它们以保留图层?