5月13日木叶下数据可视化

# 黑体谱函数black_body(nu,T)图像
import matplotlib.pyplot as plt
import numpy as np

def B(nu,T):
    h = 6.626*10**(-34)
    c = 3.0*10**8
    k = 1.38*10**(-23)
    B = (2*h*nu**3/(c**2))/(np.exp(h*nu/(k*T))-1)
    return B

nu1 = np.linspace(10**10, 10**15, 1000)
nu2 = np.linspace(10**10, 10**16, 1000)
nu3 = np.linspace(10**9, 10**16, 1000)
nu4 = np.linspace(10**9, 10**17, 1000)
nu5 = np.linspace(10**9, 10**17, 1000)
nu6 = np.linspace(10**9, 10**18, 1000)
nu7 = np.linspace(10**8, 10**18, 1000)
nu8 = np.linspace(10**8, 10**18, 1000)
nu9 = np.linspace(10**8, 10**19, 1000)
nu10= np.linspace(10**8, 10**20, 1000)

B1 = B(nu1, 300)
B2 = B(nu2, 1000)
B3 = B(nu3, 3000)
B4 = B(nu4, 10000)
B5 = B(nu5, 3*10**4)
B6 = B(nu6, 10**5)
B7 = B(nu7, 3*10**5)
B8 = B(nu8, 10**6)
B9 = B(nu9, 3*10**6)
B10= B(nu10,10**7)

fig = plt.figure(figsize=(12,9))

ax=plt.gca()
ax.semilogx()
ax.semilogy()
ax.set_xticks((1e8,1e10,1e12,1e14,1e16,1e18,1e20), minor = False)
#ax.set_xticks((1e7,1e9,1e11,1e13,1e15,1e17,1e19), minor=True)
ax.set_xticklabels([], minor=True)
ax.set_yticks((1e-15,1e-10,1e-5,1), minor = False)
#ax.set_yticks((1e-14,1e-13,1e-12,1e-11,1e-9,1e-8,1e-7,1e-6,1e-4,1e-3,1e-2,1e-1,1e2,1e1), minor=True)
ax.set_yticklabels([], minor=True)
ax.tick_params(which='major', length=6, direction='in')
ax.tick_params(which='minor', length=3, direction='in')
         
plt.plot(nu1, B1, 'k-',linewidth=1)
plt.plot(nu2, B2, 'k-',linewidth=1)
plt.plot(nu3, B3, 'k-',linewidth=1)
plt.plot(nu4, B4, 'k-',linewidth=1)
plt.plot(nu5, B5, 'k-',linewidth=1)
plt.plot(nu6, B6, 'k-',linewidth=1)
plt.plot(nu7, B7, 'k-',linewidth=1)
plt.plot(nu8, B8, 'k-',linewidth=1)
plt.plot(nu9, B9, 'k-',linewidth=1)
plt.plot(nu10, B10, 'k-',linewidth=1)

plt.text(1.6e13, 7.3e-12, "300 K", fontsize=12)
plt.text(4.0e13, 2.6e-10, "1000 K", fontsize=12)
plt.text(1.5e14, 6.4e-9, "3000 K", fontsize=12)
plt.text(5.1e14, 2.9e-7, r"$10^{4}$ K", fontsize=12)
plt.text(1.4e15, 6.7e-6, r"$3\ 10^{4}$ K", fontsize=12)
plt.text(6.6e15, 2.1e-4, r"$10^{5}$ K", fontsize=12)
plt.text(1.3e16, 6.0e-3, r"$3\ 10^{5}$ K", fontsize=12)
plt.text(5.3e16, 0.25, r"$10^{6}$ K", fontsize=12)
plt.text(1.4e17, 7, r"$3\ 10^{6}$ K", fontsize=12)
plt.text(1.2e18, 120, r"$10^{7}$ K", fontsize=12)

plt.xticks(fontsize=15)                 
plt.yticks(fontsize=15)
plt.xlim(1e7, 1e20)
plt.ylim(1e-16, 1e3)
plt.xlabel('frequency [Hz]', fontsize=15)
plt.ylabel(r"$\rm B_{\nu}(T)\ [J\ s^{-1}\ m^{-2}\ Hz^{-1}\ ster^{-1}]$", fontsize=15)
plt.show()


# In[313]:


# 考虑误差,分别用一次函数和二次函数拟合(x, y),同时显示在图上
import matplotlib.pyplot as plt
import numpy as np
 
x = np.random.uniform(0., 10., 100)
y = np.polyval([1, 2, -3], x) + np.random.normal(0., 10., 100)
e = np.random.uniform(5, 10, 100)

a1 = np.polyfit(x, y, deg=1)
z1 = np.polyval(a1, x)
a2 = np.polyfit(x, y, deg=2)
z2 = np.polyval(a2, x)

fig = plt.figure(figsize=(12,9))
plt.plot(x, y, 'o',color='k', markersize=4)
plt.plot(x, z1, 'o', color='steelblue', markersize=4)
plt.errorbar(x, z1, yerr=e, fmt=',', color='skyblue', linewidth=1, capsize=3,capthick=1)
plt.plot(x, z2, 'o', color='red', markersize=4)
plt.errorbar(x, z2, yerr=e, fmt=',', color='pink', linewidth=1, capsize=3,capthick=1)
plt.show()
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值