在Python 3中显示几位数的索引作为matplotlib.pyplot.annotate的参数

时间:2019-06-05 17:42:10

标签: python-3.x matplotlib string-formatting

我有一个程序,在此程序中,在有能力的车辆路线问题的应用中,我在地图上显示点。有一所高中(标有“Lycée”的红色正方形)和一堆绿色的公交车站,公交车站的编号为i载有q[i]个学生,其中q是字典。

因此,我以给定的坐标绘制了公交车站,这样它们的容量就显示在它们的旁边:

enter image description here

The plot result, with double-digit indexes not showing up properly

引起我麻烦的代码部分是这一行:

import matplotlib.pyplot as plt

for i in arrets: #arrets is the list of bus stops
plt.annotate("$q_{0}={1}$".format(i, q[i]))

显然,_{0}$...$的组合只能使用第一个数字,这就是为什么我在达到两位数时会得到难看的结果。我知道在Python 2中,您可以使用{...}来绕开它,这样:

plt.annotate('$q_%d=%d$'%(i, q[i]))

将成为

plt.annotate('$q_{%d}=%d$'%(i, q[i]))

返回两位数的索引,没有任何问题。但是,相同的技巧不适用于已经使用{}的新语法;我已经尝试过,还有一些猜测,例如放置两个下划线引起错误,或者使用{0:0=2d}仅在开头添加零,然后“推”第二个数字。

我似乎无法在网上找到有关整个过程的任何帮助,因为它看起来像是带有plt.annotate符号的$的“隐藏”属性。有人知道什么语法可以工作,以便用几位数的索引来制作更好看的图吗?预先感谢。

0 个答案:

没有答案