numpy.loadtxt画功率谱图

(非专业相关可以选择性阅读)
从CAMB中可以得到.dat文件,由于第一行有L,TT,EE等字符使得numpy无法正常读取文件;故可以手动将第一行去掉,剩下的以python写代码画图,如下:

import matplotlib.pyplot as plt
import numpy as np

data = np.loadtxt('test_scalCls.dat')
L = data[:,0]
TT = data[:,1]
EE = data[:,2]
TE = data[:,3]

plt.plot(L,TT)
plt.plot(L,TE)
plt.title ('Scalar power spectrum',fontsize=18)
plt.xlabel ('multipole moment l',fontsize=12)
plt.ylabel('C_l',fontsize=12)
plt.show()

这里写图片描述

以上是画了两个图在一起的,使用的是笛卡尔坐标
画多个图在一起的便捷方法见后文

对数坐标:
ax.semilogx(x,y) #x轴为对数坐标轴
ax.semilogy(x,y) #y轴为对数坐标轴
ax.loglog(x,y) #双对数坐标轴

1)横纵坐标都是对数坐标

import matplotlib.pyplot as plt
import numpy as np

data = np.loadtxt('test_scalCls.dat')
L = data[:,0]
TT = data[:,1]
EE = data[:,2]
TE = data[:,3]

plt.loglog (L,TT,color='red',linestyle='-',linewidth=1.5)
plt.title ('Scalar power spectrum',fontsize=18)
plt.xlabel ('multipole moment l',fontsize=12)
plt.ylabel('C_l',fontsize=12)
plt.xlim(2,2200)
plt.ylim(10**2,10**4)
plt.show()

以上画的是TT谱,结果如下:
这里写图片描述
将TT,EE,TE,TP….谱以T为横坐标画对数图(在一个窗口)如下

import matplotlib.pyplot as plt
import numpy as np

data = np.loadtxt('test_scalCls.dat')
L = data[:,0]
for column in data.T:
    plt.loglog(L,column,linestyle='-',linewidth=1.5)

plt.title ('Scalar power spectrum',fontsize=18)
plt.xlabel ('multipole moment l',fontsize=12)
plt.ylabel('C_l',fontsize=12)
plt.xlim(2,2200)
plt.show()

结果为:
这里写图片描述

2)一轴是对数

以下画TE谱

import matplotlib.pyplot as plt
import numpy as np

data = np.loadtxt('test_scalCls.dat')
L = data[:,0]
TT = data[:,1]
EE = data[:,2]
TE = data[:,3]

plt.semilogx (L,TE,color='b',linestyle='-',linewidth=1.5)
plt.title ('Scalar power spectrum',fontsize=18)
plt.xlabel ('multipole moment l',fontsize=12)
plt.ylabel('C_l',fontsize=12)
plt.xlim(2,2200)
plt.ylim(-150,150)
plt.show()

这里写图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值