matplotlib中的图层图和注释

时间:2018-03-09 02:43:31

标签: python matplotlib

我正在尝试创建一个数字,显示一些关键绩效指标如何在两个指标的三个时期内呈现趋势。

我已经设法通过轴测量指标来绘制三个时期的KPI(每种颜色都是不同的颜色),但是我仍然需要一种方法来突出显示每个KPI的周期。我的意图是在每个标记气泡中都有一个数字(1,2或3),但是我无法正确分层以保持整洁。

这就是目前的样子

Current attempt

我遇到的问题是,即使注释位于初始循环内,图表也会在图表顶部呈现所有注释。我很好地将元素放在另一个上面,但是我想在与标记相同的图层上的每个标记上进行注释,这样如果堆叠了三个点,则只有顶部标记和数字可见。

我可以将注释浮动,但我计划为不同的业务领域生成一些这样的注释,因此我想要一种格式,使用不同的数据保持相对整洁。

数据的结构为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生成图,同时注释它们以保留图层?

0 个答案:

没有答案