我有一个文本文件,其中包含例如五列数据。这是文本文件中的示例数据-
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]
相同对于示例代码中的 a
和 b
,code> 与 np.array(b)
相同。
关于python - 将峰彼此等距分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17107108/