首页 > 解决方案 > 在 Python 3 中显示多位索引作为 matplotlib.pyplot.annotate 的参数

问题描述

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

因此,我用给定的坐标绘制了我的巴士站,以便它们的容量出现在它们旁边,如下所示:

在此处输入图像描述

绘图结果,两位数索引未正确显示

给我带来麻烦的代码部分是这一行:

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带有$标志的“隐藏”属性。那么有没有人知道什么语法可以工作,以便有几个数字的索引来制作一个更好看的情节?提前谢谢。

标签: python-3.xmatplotlibstring-formatting

解决方案


推荐阅读