为什么这不起作用?使用matplotlib绘制分割输出

2024-05-20 17:59:07 发布

您现在位置:Python中文网/ 问答频道 /正文

只是想问一下为什么这个代码不起作用,我正在阅读一个有4列的文件,其想法是将最后3列与1列进行对比。但是有一件不舒服的事我不明白,你知道怎么解决吗

import numpy as np

import cmath as math
import matplotlib.pyplot as plt


dataplanck1 = 'COM_PowerSpect_CMB-TT-full_R3.01.txt'
dataplanck2 = 'COM_PowerSpect_CMB-EE-full_R3.01.txt'
dataplanck3 = 'COM_PowerSpect_CMB-TE-full_R3.01.txt'
datawmap1 = 'wmap_tt_spectrum_9yr_v5.txt'
datawmap2 = 'wmap_ee_spectrum_9yr_v5.txt'
datawmap3 = 'wmap_te_spectrum_9yr_v5.txt'

multipole = []
dls = []
dlse1 = []
dlse2 = []

with open(dataplanck1) as fobj:
    for line in fobj:
        row = line.split()
        multipole.append(row[0])
        dls.append(row[1])
        dlse1.append(row[2])
        dlse2.append(row[3])


plt.plot(multipole, dls, label='Synthetic masked ')
plt.show()

输出为:

weirdplot

那没道理。数据的格式如下:

 2.00000000e+00   2.25895000e+02   1.32369000e+02   5.33062000e+02
  3.00000000e+00   9.36920000e+02   4.50471000e+02   1.21230800e+03
  4.00000000e+00   6.92238000e+02   2.94111000e+02   6.66469000e+02
  5.00000000e+00   1.50170500e+03   5.74432000e+02   1.15580400e+03
  6.00000000e+00   5.57611000e+02   2.01242000e+02   3.75763000e+02
  7.00000000e+00   1.15264300e+03   3.81584000e+02   6.70824000e+02
  8.00000000e+00   6.15846000e+02   1.91997000e+02   3.23446000e+02
  9.00000000e+00   6.97821000e+02   2.14638000e+02   3.49581000e+02
  1.00000000e+01   8.03658000e+02   2.32846000e+02   3.67945000e+02
  1.10000000e+01   8.69580000e+02   2.40260000e+02   3.71043000e+02
  1.20000000e+01   7.64074000e+02   2.04951000e+02   3.10576000e+02
  1.30000000e+01   5.99003000e+02   1.58593000e+02   2.35581000e+02

提前谢谢


Tags: importtxtcomaspltfullspectrumrow
1条回答
网友
1楼 · 发布于 2024-05-20 17:59:07

pltmodule,因此不能将其作为函数调用

如果要使用matplotlib.pyplot绘制绘图,应调用函数plot,然后使用show函数查看绘图

在这种情况下,以下几行将为您绘制散点图:

plt.plot(multipole, dls,'.')
plt.show()

相关问题 更多 >