python - 将峰彼此等距分开

标签 python numpy matplotlib

我有一个文本文件,其中包含例如五列数据。这是文本文件中的示例数据-

   715.10685    -0.006153   -0.004829   -0.002161   0.000994    0.004024
   715.589053   0.000344    0.001608    0.004192    0.007262    0.010277
   716.071255   0.009477    0.010658    0.013193    0.016265    0.019321
   716.553458   0.021954    0.023053    0.025522    0.02855     0.031579
   717.035661   0.03933     0.040322    0.042648    0.045625    0.048713
   717.517864   0.065858    0.066748    0.068937    0.071936    0.075013
   718.000067   0.105093    0.105611    0.107231    0.109831    0.112457
   718.48227    0.159793    0.159685    0.160404    0.162183    0.16411
   718.964473   0.227552    0.226183    0.22505     0.224954    0.224974
   719.446675   0.280709    0.277399    0.273711    0.271167    0.268747
   719.928878   0.287966    0.284241    0.280152    0.277131    0.274246
   720.411081   0.2579      0.255127    0.252152    0.249984    0.24799
   720.893284   0.217396    0.215636    0.214007    0.213105    0.21248
   721.375487   0.183229    0.182397    0.182068    0.182365    0.182748
   721.85769    0.156936    0.156647    0.157027    0.157882    0.158674
   722.339893   0.13635     0.136406    0.137233    0.138479    0.139685
   722.822096   0.120752    0.121058    0.122156    0.123668    0.125183
   723.304298   0.107352    0.107843    0.109138    0.110859    0.112598
   723.786501   0.095212    0.0959      0.097439    0.099493    0.101428
   724.268704   0.085383    0.086165    0.08792     0.090225    0.092336
   724.750907   0.0776      0.078475    0.080518    0.083035    0.085425
   725.23311    0.070816    0.071864    0.074134    0.076913    0.07958
   725.715313   0.065264    0.066499    0.068969    0.072023    0.074953
   726.197516   0.06251     0.063919    0.06673     0.070063    0.073333
   726.679718   0.062564    0.064118    0.067235    0.07086     0.074526
   727.161921   0.064957    0.066703    0.070112    0.074137    0.078255
   727.644124   0.071889    0.073893    0.07768     0.082185    0.086759
   728.126327   0.084432    0.086715    0.090869    0.095897    0.100956
   728.60853    0.102835    0.105454    0.110048    0.115624    0.121192
   729.090733   0.129785    0.132514    0.137395    0.143102    0.148829
   729.572936   0.166336    0.168793    0.173371    0.178551    0.183697
   730.055139   0.209726    0.211157    0.214009    0.217215    0.220028

我有以下脚本可以读取文本文件并相应地绘制数据。

import numpy as np
import matplotlib.pyplot as plt
data = np.genfromtxt('peak.txt', dtype = float)

a = [row[0] for row in data]
b = [row[1] for row in data]
c = [row[2] for row in data]
d = [row[3] for row in data]
e = [row[4] for row in data]

fig = plt.figure(figsize=(6,8))
ax = fig.add_subplot(111)
ax.plot(a,b,a,c,a,d,a,e)

plt.show()

它生成四个相互重叠的图。我想将它们等距分开,以便它们清晰可见。也许一种合理的方法是,它可以在所有绘图中寻找最小值并添加一定的增量,以便等距分隔绘图。可能还有其他一些方法。我不确定如何在 python 中完成此操作。有人可以帮我一下吗?谢谢。

最佳答案

您不需要列表解析,因为您将数据作为 NumPy 数组读入。相应地切片,事情会更容易。

import numpy as np
import matplotlib.pyplot as plt
data = np.genfromtxt('peak.txt', dtype = float)

fig = plt.figure(figsize=(6,8))
ax = fig.add_subplot(111)

for i in range(1, data.shape[1]):
    y = data[..., i] + 0.1*i 
    ax.plot(data[..., 0], y)

plt.show()

因此 data[..., 0]np.array(a)data[..., 1] 相同对于示例代码中的 ab,code> 与 np.array(b) 相同。

enter image description here

关于python - 将峰彼此等距分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17107108/

相关文章:

python - 在 Numpy 中将子向量分配给多维数组

python - 希博恩 : cut display

python - Enthought - matplotlib(plot() 函数的问题)

python - 关于如果 x 是 int

python - 无法加载应用程序 0(挂载点 ='uwsgi')(找不到可调用或导入错误)

python - 具有对数比例色图的 Geopandas

python - 在循环外添加矩阵

jquery - 动态添加表单元素后表单提交

python - 如何评估 mpmath 函数内的 numpy 数组?

python - 两种颜色之间的 matplotlib 颜色渐变