我正在尝试绘制此数据集。数据集是从列表产生的数组。如果(列表的)第二索引中的项是某个字符串,则它将通过第三索引(y)绘制第0索引(x)。然后,在第二个索引中具有相同字符串的所有坐标都将是某种颜色。
所以基本上我有一个飞行图与5个不同接收器的值的关系图。每个接收器都有不同的颜色,都使用相同的y范围
现在无法生成该图,但是我的问题是,当我绘制它时,几乎就像我在一个图上绘制5个单独的图一样,因为它在底部绘制了第一个接收器x,y,并且然后下一个接收器将x,y绘制在第一个接收器的正上方,好像它具有一个全新的y范围,其余接收器依此类推。
我曾尝试使用y_lim(0,1000000),但这只会生成一个图,所有图都收缩在底部,即使我的值之一超过了900000。即使我将其更改为低得多的最大数,仍然全部陷在底部
im还可以将数组更改为列表并将其绘制出来,这为我提供了我正在寻找的正确y范围,但是现在它不会为不同的接收器着色。
These are the values in CSFlistremote:
[['TF01', '311', '2EAP', '763243', 'Cycle Slip Frequency'], ['TF01', '311', '3EAP', '763540', 'Cycle Slip Frequency'], ['TF01', '311', 'j078', '217278', 'Cycle Slip Frequency'], ['TF01', '311', 'j080', '271626', 'Cycle Slip Frequency'], ['TF01', '311', 'j524', '217289', 'Cycle Slip Frequency'], ['TF02', '311', '2EAP', '178616', 'Cycle Slip Frequency'], ['TF02', '311', '3EAP', '218762', 'Cycle Slip Frequency'], ['TF02', '311', 'j078', '269259', 'Cycle Slip Frequency'], ['TF02', '311', 'j080', '195869', 'Cycle Slip Frequency'], ['TF02', '311', 'j524', '239231', 'Cycle Slip Frequency'], ['TF03', '031', '2EAP', '828854', 'Cycle Slip Frequency'], ['TF03', '031', '3EAP', '690723', 'Cycle Slip Frequency'], ['TF03', '031', 'j078', '942357', 'Cycle Slip Frequency'], ['TF03', '031', 'j080', '942057', 'Cycle Slip Frequency'], ['TF03', '031', 'j524', '942066', 'Cycle Slip Frequency']]
These are the values in recvs:
['j078', 'j080', 'j524', '2EAP', '3EAP']
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
for recv in recvs:
if len([x for x in CSFlistremote if x[2] == recv]) > 0:
freq = np.array([[str(x[0]),int(x[3])] for x in CSFlistremote if 'Cycle Slip Frequency' in x[4] and recv in x[2]])
ax = plt.axes()
ax.plot(freq[:,0],freq[:,1],'o--', linewidth=2, markersize=6, label = recv)
plt.title('Remote Receivers Cycle Slip Frequency')
ax.set_ylabel('Observations/Slip')
ax.set_xlabel('Flight')
ax.legend(bbox_to_anchor=(0.79,0.97), loc=2, borderaxespad=0.)
plt.show()
我从中得到的图是5条不同的线,所有线都具有正确的不同接收器颜色,但是它在底部绘制了第一个接收器x,y,然后在下一个接收器中绘制了x,y,正好是第一个接收器如果它具有一个全新的y范围,对于其余的接收器,依此类推。因此,与其全部放在我的y范围图上,不如在一个图上显示5个不同的图。