python绘图中的自动图例和轴的限制
我正在使用以下代码绘制结果 有没有办法自动添加图例?我的意思是,如果python绘图中的自动图例和轴的限制,python,matplotlib,plot,Python,Matplotlib,Plot,我正在使用以下代码绘制结果 有没有办法自动添加图例?我的意思是,如果z=1,9绘图自动写入每条线的图例,该颜色用于z=1,而该颜色用于z=2 还有一个是如何增加每个轴的截面?不是他们的极限,只是他们的部分。这里我只看到0,0.5,1,但我想要0,0.1,0.2,0.3, fig, (ax1, ax2, ax3) = plt.subplots(3) while True: inp = float(input("PLEASE ENTER VALUE:")) if i
z=1,9
绘图自动写入每条线的图例,该颜色用于z=1
,而该颜色用于z=2
还有一个是如何增加每个轴的截面?不是他们的极限,只是他们的部分。这里我只看到0,0.5,1
,但我想要0,0.1,0.2,0.3,
fig, (ax1, ax2, ax3) = plt.subplots(3)
while True:
inp = float(input("PLEASE ENTER VALUE:"))
if inp==0:
print('***')
print('0 Is not acceptable')
print('***')
else:
for mg in np.arange(100,3000,500):
for z in np.arange(0,1):
for test in range(0,1):
Ju_list=[]
ET_list=[]
ETmgncmb_list=[]
ETmgcmb_list=[]
nu_list=[]
for xx in range(1,819):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if inp<0:
if lim > 1:
pass
else:
Ju_list.append(dfimppara.iloc[xx, 1])
ET_list.append(ET(xx, 0,0,100))
ETmgncmb_list.append(ET(xx, 0,0,mg))
ETmgcmb_list.append(ET(xx, 0,1,mg))
ax1.plot(Ju_list, ET_list)
ax2.plot(Ju_list, ETmgncmb_list)
ax3.plot(Ju_list, ETmgcmb_list)
else:
... some lines of code
break
ax1.title.set_text('T_ex vs. J' )
ax2.title.set_text('T_ex vs. J' )
ax3.title.set_text('T_ex vs. J ')
plt.show()
图(ax1、ax2、ax3)=plt.子批次(3)
尽管如此:
inp=浮点(输入(“请输入值:”)
如果inp==0:
打印(“***”)
打印(“0不可接受”)
打印(“***”)
其他:
对于np.arange(1003000500)中的mg:
对于np.arange(0,1)中的z:
对于范围(0,1)内的试验:
Ju列表=[]
ET_列表=[]
ETmgncmb_列表=[]
ETmgcmb_列表=[]
nu_列表=[]
对于范围内的xx(1819):
Ju=DFIMP第iloc段[xx,1]
Jl=DFIMP第iloc段[xx,2]
lim=Ju-Jl
如果inp 1:
通过
其他:
Ju_list.append(dfimppara.iloc[xx,1])
ET_列表追加(ET(xx,0,0100))
ETmgncmb_list.append(ET(xx,0,0,mg))
ETmgcmb_列表。追加(ET(xx,0,1,mg))
ax1.绘图(Ju列表、ET列表)
ax2.绘图(Ju列表、ETmgncmb列表)
ax3.绘图(Ju列表、ETmgcmb列表)
其他:
... 一些代码行
打破
ax1.title.set_text('T_ex vs.J')
ax2.title.set_text('T_ex vs.J')
ax3.title.set_text('T_ex vs.J')
plt.show()
好的,您可以自己设置记号的位置,只需使用:
plt.sca(轴[0,0])#这里指定要更改xtick的子批
plt.xticks(np.arange(0,1.1,0.1))
您可以找到关于该主题的更多信息
如果要创建图例,只需在绘图中添加标签,然后使用图例的位置调用图例:
ax1.plot(Ju_list,ET_list,label='ET_list')
ax2.绘图(Ju_列表、ETmgncmb_列表、label='ETmgncmb_列表〕)
ax3.绘图(Ju列表、ETmgcmb列表、标签='ETmgcmb列表')
ax1.图例(loc='best')
ax2.图例(loc='best')
ax3.图例(loc='best')
我以前试过,在这里我看到太多问题,我无法找到解决方案。第一个是,在这个图例中,我们应该正好有这两个z=0和z=1。但是在这里,我在图中有10000个“ET_list”,因为我们在3个for循环中。除了“ET_list”太多这一问题之外,每个lineWell的名称都应该更改。您要绘制多少条曲线?当然,如果使用同一标签绘制10000条曲线,则会出现10000次。我的意思是你可以通过常规的字符串操作来改变每个循环中的标签。另外,您希望如何使用单个标签标记10000条曲线,同时它们应该只有2个标签?没有1000条曲线。有许多循环,但每个循环只影响一个功能。正如你看到的,我有3个for循环,但举个例子,mg
是可变的。问题是你多次调用你的绘图,所以你绘制了很多曲线。这就是为什么图中不止一个ET_列表
的确切原因。如果你不相信我,你可以在绘图调用前放置一个print
,你会看到,对于绘图中的每个ET_列表
,你也会得到一个打印。