在以下代码中,我们在一幅图中绘制了10条曲线if Ju<11:
如何在每条曲线上书写,读者可以在其中找到Ju
的每一行。
例如,在每一行上,我们可以看到Ju =1
,另一行是Ju=2
并...
我的意思是将每行标签上的确切使用价值
fig, (ax1) = plt.subplots(1)
for n in np.arange(100,200,100):
for z in np.arange(3,4):
ET_list=[]
uf_list=[]
for xx in range(1,819):
for uf in np.linspace(1e-26,1e-20,10):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if lim > 1:
pass
else:
if Ju<11:
ET_list.append(ET(xx, z, n, 1, uf)/ET(xx, z, n, 1, 0))
uf_list.append(uf)
ax1.plot(uf_list, ET_list)
else:
pass
ax1.title.set_text('Fig1')
plt.xlabel('Un')
plt.ylabel('TT')
#plt.xscale('log')
plt.show()
任何帮助请
最佳答案
您可以使用text(x,y,s)
中的matplotlib
功能。这里是文档:
https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.text.htmltext
包含3个主要参数,即x
和y
,它们是文本的坐标。而s
是要在绘图上写入的字符串。对于您来说,它将类似于"Ju={:d}".format(Ju)
。
你应该有这样的东西
fig, (ax1) = plt.subplots(1)
for n in np.arange(100,200,100):
for z in np.arange(3,4):
ET_list=[]
uf_list=[]
for xx in range(1,819):
for uf in np.linspace(1e-26,1e-20,10):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if lim > 1:
pass
else:
if Ju<11:
ET_list.append(ET(xx, z, n, 1, uf)/ET(xx, z, n, 1, 0))
uf_list.append(uf)
ax1.plot(uf_list, ET_list)
x = # Put here a float or int that represent the x coordinates of the text
y = # Put here a float or int that represent the y coordinates of the text
s = "Ju={:d}".format(Ju)
ax1.text(x, y, s)
else:
pass
ax1.title.set_text('Fig1')
plt.xlabel('Un')
plt.ylabel('TT')
plt.show()
您可以尝试的其他方法只是将其作为图例。您可以通过使用
label
中的ax.plot()
参数为每行设置标签来设置图例。像这样:
fig, (ax1) = plt.subplots(1)
for n in np.arange(100,200,100):
for z in np.arange(3,4):
ET_list=[]
uf_list=[]
for xx in range(1,819):
for uf in np.linspace(1e-26,1e-20,10):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if lim > 1:
pass
else:
if Ju<11:
ET_list.append(ET(xx, z, n, 1, uf)/ET(xx, z, n, 1, 0))
uf_list.append(uf)
ax1.plot(uf_list, ET_list, label="Ju={:d}".format(Ju))
else:
pass
ax1.title.set_text('Fig1')
# You have to set the legend
ax1.legend(loc="best")
plt.xlabel('Un')
plt.ylabel('TT')
plt.show()