如何为矩阵生成的3条曲线添加坐标轴标签与曲线标签?
解决方案:为三能级系统曲线添加标签
直接修改你的代码,通过分别指定每条曲线的标签、添加坐标轴标签并显示图例,就能实现需求。修改后的完整代码如下:
import numpy as np import matplotlib.pyplot as plt E1 = 0.3 # 能级能量值 E2 = 0.2 E3 = 0.7 t = np.array([0]) # 时间数组初始值 # 跃迁频率计算 w12 = abs(E2 - E1) w23 = abs(E3 - E2) w13 = abs(E3 - E1) t0 = 0 # 起始时间 dt = 1 # 时间步长 T = 30 # 结束时间 Nt = int(T / dt) # 时间步数 # 初始粒子数状态 N01 = 0 N02 = 0 N03 = 1 # 初始化粒子数矩阵和总粒子数 N = np.array([[N01, N02, N03]]) N_sum = N01 + N02 + N03 # 跃迁速率矩阵 W = np.array([ [-w12, 0, w13], [w12, -w23, 0], [0, w23, -w13], ]) # 时间演化计算 for i in range(1, Nt): tempo = N[i-1] + dt * W @ N[i-1] N = np.vstack((N, tempo)) t = np.append(t, t[0] + i * dt) # 分别绘制每条曲线并添加对应标签 plt.plot(t, N[:, 0], label=f"能级1 (初始粒子数: {N01})") plt.plot(t, N[:, 1], label=f"能级2 (初始粒子数: {N02})") plt.plot(t, N[:, 2], label=f"能级3 (初始粒子数: {N03})") # 添加坐标轴标签 plt.xlabel("时间") plt.ylabel("粒子数") # 显示图例 plt.legend() # 自动调整布局防止标签被截断 plt.tight_layout() plt.show()
关键修改说明:
- 拆分原
plt.plot(t,N)为三条单独的绘图语句,每条对应一个能级的粒子数演化曲线,并通过label参数指定与初始状态绑定的标签。 - 添加
plt.xlabel()和plt.ylabel()分别设置X轴(时间)和Y轴(粒子数)的标签。 - 调用
plt.legend()显示曲线标签,plt.tight_layout()优化图表布局,避免标签被遮挡。
内容的提问来源于stack exchange,提问作者JonnyT150
相关产品推荐
相关产品推荐

