在matplotlib中将文本放入图表中

3
我正在制作多条线图,每一步都会将另一条线添加到前一个图中。它们看起来像这样:enter image description here 现在我想删除图例并添加国家名称在线条上方,比如中国在蓝线上方。如何在线条旁边添加文字?
创建这些多个图的代码:
for i in years:
    yearsi=list((range(1960,i+1)))
    yearsi=map(str,yearsi)
    ax=df.pivot_table(values=yearsi, columns='Country Name').plot()
    ax.set_ylim([0, 1500])
    ax.set_xticks(range(0,61,10))
    ax.set_xticklabels(range(1960, 2021,10))

数据框的格式如下图所示

enter image description here


有一种方法可以直接在指定位置向图形添加文本。你试过了吗?https://matplotlib.org/3.2.0/gallery/pyplots/pyplot_text.html - andy
是的,我尝试过了,但没有得到期望的结果。我认为我的错误可能在于坐标系,我将它们设置为y = df [str(years)]和x等于某个整数。 - szczor1
有关主题 - Alexandre B.
1个回答

3
我刚刚快速测试了一下,如果你正确设置坐标,你应该可以使用Text实现你想要的效果。
创建一个新的文本实例:
self.look_at_me = self.ax2.text(0, 0, 'Look at me!', size=12, color='g')

以上内容足以满足您的示例需求! 0,0 是文本的 x 和 y 坐标。

现在我有一个函数,用于动画绘制图表,您可能没有这个功能。无论如何,为了额外的内容,您可以基于数据更新文本的位置到一些新的 x 和 y 坐标。

def animate(i):
    self.look_at_me.set_position((self.df['t'][i], self.df['r_mag'][i]))

这将得到以下结果,并且它应该适用于您需要的所有文本标签和相应的数据。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接