Python 在绘图图例中写入$\sqrt(2)$而不是1.414

Python 在绘图图例中写入$\sqrt(2)$而不是1.414,python,matplotlib,plot,Python,Matplotlib,Plot,使用Python的matplotlib,如何在绘图图例中使用平方根符号而不是其十进制值编写put“sqrt(2)”?请参见下面的绘图和代码。如果我需要详细说明,请告诉我。谢谢大家! import matplotlib.pyplot as plt import numpy as np E = np.linspace(50000,200000,1000) # eV a = 3.615*10**(-10) #m h = 6.582*10**(-16) #eV s m = 9.109*10**(-

使用Python的matplotlib,如何在绘图图例中使用平方根符号而不是其十进制值编写put“sqrt(2)”?请参见下面的绘图和代码。如果我需要详细说明,请告诉我。谢谢大家!

import matplotlib.pyplot as plt
import numpy as np


E = np.linspace(50000,200000,1000) # eV

a = 3.615*10**(-10) #m
h = 6.582*10**(-16) #eV s
m = 9.109*10**(-31) #kg
J = 6.242*10**(-18) #1eV to J

def T(x,E):
    return np.arcsin(x*np.sqrt(J*((np.pi**2 *h**2)/(a**2 * 4*m *E))))*1000

fig, ax = plt.subplots()
x = np.asarray([2*np.sqrt(2), 2, np.sqrt(3)])
for i in x:
    ax.plot(E,T(i,E),label='hkl=%s' % i)
    plt.ylabel('$\Theta$ (mrad)')
    plt.xlabel('Energy (eV)')
    plt.legend(bbox_to_anchor=(1.01, 1), loc=1, borderaxespad=0.)
这张图显示的是:


编辑:
我要提到的是,我想让这段代码取
x
中的任何值并绘制它,在图例中使用实际的平方根符号而不是其十进制值。

您可以使用Unicode将平方根符号写成字符串,然后添加您感兴趣的任何数字。要将平方根符号写入字符串,请使用
'\u221A'

修改代码的一种方法是将x转换为字典。所以
x={'2\u221A2':2*np.sqrt(2),'2':2,'\u221A3':np.sqrt(3)}
。您的for循环将成为x.items()中k,v的
,其中k和v是key和value的缩写,循环中的第一行将是
ax.plot(E,T(v,E),label='hkl=%s'%k)


在解析一个数字并将其写成平方根的过程中,这更复杂一些,类似于代码评审中的问题:

您能告诉我如何将其合并到代码中吗?我还在学习Python,可以举个例子。