首页 > 解决方案 > 如何使用变量和字符串的混合标记 Matplotlib 图?

问题描述

尝试使用变量和字符串的混合标记单个图(在循环内)时遇到麻烦。

这是我遇到问题的部分:

plt.plot(wlist, elist, label=('ratio =',i)) #using this inside a loop

当我运行它时,它在图例中显示为 ('ratio =', #) 其中 # 是它正在进行的任何迭代。我只希望它打印为:

Ratio = #

(我添加的括号是我得到的输出的一部分)

标签: pythonloopsmatplotlib

解决方案


如果不需要括号,那么您可以将 an 传递f-string给参数(如果您以前没有使用过 f 字符串,可以在此处label阅读有关 f 字符串的更多信息):

plt.plot(wlist, elist, label=f'ratio ={i}')

这是从这个答案中借用的一个快速示例,我们可以根据迭代次数标记一些曲线:

import numpy as np
x = np.linspace(0, 20, 1000)
y_plots = [np.sin(x), np.cos(x)]
for i in range(len(y_plots)):
    plt.plot(x, y_plots[i], label=f"plot {i}")
plt.legend(loc='upper left')
plt.show()

在此处输入图像描述


推荐阅读