为什么Matplotlib在loglog()图中绘制从最后一个值到x轴的直线



我正试图为我的数据集使用loglog图,但我希望我的图线在每组的最后一个y值处结束,但matplotlib用一条直线完成了到x轴的loglog图。

但我希望我的情节是这样的,以精确的最终值结束。

我对x轴有相同的数组,但有4个不同的y值,所以我把我的图画成这样:

plt.loglog(x,y1,x,y2,x,y3,x,y4)

我从txt文件创建我的y数组,如下所示:

with open(os.path.join(root,name),'r') as fin:
y1 = []
for q in fin:
y1.append(float(q.split(' ')[1]))

如何从y1数组中删除零值?

数值如下:

1 0.535025
2 0.116237
4 0.0336809
8 0.00814949
16 0.00159025
32 0.000202602
64 1.00662e-05
128 7.68864e-08
256 0
512 0
1024 0
2048 0
4096 0
8192 0
16384 0

好吧,我只是添加了以下代码,用NaN值替换零值,这样loglog((图就不会使用NaN值:

for i in range(0,15):
if y1[i] == 0:
y1[i] = np.nan

注意:我在y1数组中有15个值,这就是为什么我的范围是0到15。

所以问题解决了!我想怎样就怎样。

最新更新