Python 即使序列已排序,matplotlib也无法生成良好的绘图
我正在尝试使用Python 即使序列已排序,matplotlib也无法生成良好的绘图,python,matplotlib,plot,Python,Matplotlib,Plot,我正在尝试使用kmpfit的函数来适应数据。我写了一个函数并创建了我需要的数据。但我不能适应我不知道为什么。为了诊断这个问题,我写了一些代码,其中包括函数和数据 import numpy as np from numpy import sin, deg2rad, cos, sqrt import matplotlib.pyplot as plt a = 0.0227 b = 0.62 c = 8 c = deg2rad(c) nuv = [-3.1100378489321852, -3.08
kmpfit
的函数来适应数据。我写了一个函数并创建了我需要的数据。但我不能适应我不知道为什么。为了诊断这个问题,我写了一些代码,其中包括函数和数据
import numpy as np
from numpy import sin, deg2rad, cos, sqrt
import matplotlib.pyplot as plt
a = 0.0227
b = 0.62
c = 8
c = deg2rad(c)
nuv = [-3.1100378489321852, -3.080779513591613, -2.9623116962718488,
-2.9320051771903497, -2.9013199203020847, -2.8701927054527872,
-2.8385560698050005, -2.8064753639671229, -2.7735993901156806,
0.36844509142666976, -1.9705142582292372, -1.9480811770908353,
-1.8947986536539931, -1.7815887886073671, -1.6265828144867829,
-1.4715907393121233, -1.3596977825555951, -1.1806587672501143,
-0.55288603288541771, -0.3438991564882124, -0.096758921190596897,
0.1421861377303521, 0.1521340052085457, 0.17640752287484385,
0.18191492261884601, 0.40234958689656314, 0.40867327724685887,
0.63794208658968032, 0.81961004137343407, 1.05736971066194,
-1.70274820249535, -1.70274820249535, 0.42810230167965252,
1.0554491959743697, 2.7430022419118756, 2.8118425268507146,
-3.0820210311891394, -3.0820210311891394, -3.0806553516084221,
-3.079537808956486, -3.051416931311882, -3.0491716855327584,
-3.0208948970571354, -2.9952067470859789, -2.9586059581956659,
-2.8652681815246064, -2.2321198257675805, -2.2206413194692436,
-2.0487466547184545, -1.8050857172004837, -1.7930212308038123,
-1.7815887886073671, -1.7226178324645978, -1.4606334503318792,
-0.83202979435506985, -1.7151892997754807, -0.83202979435506985,
2.2102292057472126, 2.5763645851209516, 2.6016705429837792,
2.6019932968419615, 2.6417842665684885, 2.7754289398605785,
2.8800044863276719, 2.9639713200505731, 2.9665227207320721,
3.0286694241613157, 3.035679936973573, -2.9347163938922485,
-1.9155430346178968, -0.8329136783770752, -0.41183105265094888,
-0.41183105265094888, -0.35565635716173022, -0.33425595343332393,
-0.14550316836124572, -0.046748486226005727, -0.014472947078634411,
0.010019854021946903, 0.15765630643413217, 0.16207184620306636,
0.16979394098215997, 0.2455050636785748, 0.32888961322616905,
0.34068709407632647, 0.41393471786055941, 0.81604599160336466,
0.82227854519908261, 0.82405538828268077, 0.88429703962531769,
0.8920027798874578, 0.8937104108565872, 1.0380482588180733,
1.0550647837167857, 1.0673149179289214, 1.0892511472554207,
1.090751378101996, 1.1019515646556739, 1.2159122481551932,
1.3542493616501501, 1.5210878230651259, 1.6218954762172026,
1.7141232570434284, 1.7217718347292865, 1.7226178324645969,
1.7264153759365395, 1.7272571820448859, 1.7272571820448859,
1.7301975380711199, 1.7310359400385833, 1.7347994417661872,
1.7356337138705407, 1.806630835761261, 1.8093284840635859,
1.8135515086252094, 1.8204197395679962, 1.8238344030699196,
1.8287440216294626, 1.8294969830398455, 1.8321274088390307,
1.8362454868831941, 1.8396008708675498, 1.9100585907395602,
1.9107460107483889, 1.9131477787112994, 1.9260731388299077,
1.9328005884380208, 1.9775475878862827, 1.9804086181362759,
1.9832603038017205, 1.9838927484750857, 1.9901921074027069,
1.9958228822074535, 1.996446284121739, 2.0054358275605568,
2.0075918811971802, 2.0115818619978514, 2.3438068328193378,
2.3475719712881635, 2.5352777696149347, 2.6364743870415346,
2.6367874035598713, 2.6441192165852141, 2.6787571357364954,
2.6787571357364954, 2.7127462059565524, 2.8155478976210593,
2.8155478976210593, 2.9637160558930811, 2.9688170723543408,
2.971618862419588059, 2.971618862419588059, 2.971873440211980633,
2.973909288536141116, 2.973909288536141116, 2.973909288536141116,
2.973909288536141116, 2.975053852915546138, 2.988756120609725730,
2.988756120609725730, 2.997733101268694078, 3.002528215246087484,
3.024533112572501015, 3.029546326593630212, 3.029796838704217787,
3.029796838704217787, 3.057773628487484352, 3.057773628487484352,
3.082021031189138949, 3.082269312603408196, 3.082269312603408196,
3.090830763730009867, 3.090830763730009867, 3.117465833634534444,
3.117713382754725870, 3.118579781836214870, -3.137757833066940893,
-3.135283702532828620, -3.116475607291006700, -3.111771326539556348,
-3.110409324019566490, -3.107684967030220680, -3.085124032183865328,
-3.080655351608422077, -3.080655351608422077, -3.056153954170345965,
-3.056153954170345965, -3.055032380304064876, -3.051416931311881964,
-3.050294422847536602, -3.046426235155258233, -3.045052977567606955,
-3.040306178547460547, -3.025410839089959669, -3.023153466326280903,
-3.019514061115116110, -3.019514061115116110, -3.019262950653463840,
-3.016499720202928891, -2.999752879791346860, -2.998616895900385160,
-2.994448482862606120, -2.991034216204778495, -2.991034216204778495,
-2.990528106552184262, -2.989642231047596077, -2.989642231047596077,
-2.989389080673096721, -2.958605958195665853, -2.958605958195665853,
-2.957199051665845069, -2.956047415437953241, -2.937037941583197309,
-2.936135373597172027, -2.936135373597172027, -2.933554808031611394,
-2.928385552843677075, -2.925796788473665533, -2.925796788473665533,
-2.925796788473665533, -2.922038082369069034, -2.902759480161329453,
-2.898962204439052393, -2.898962204439052393, -2.896339471914807007,
-2.896077020722079620, -2.895158185244958382, -2.882119579422069311,
-2.875900099747880301, -2.871787148454901129, -2.870059775925943413,
-2.869129012901771691, -2.867931656264596008, -2.867931656264596008,
-2.866467204747387143, -2.863801681292100110, -2.849610622824613859,
-2.845708912151509562, -2.841798674778476475, -2.841528685437748170,
-2.840718469700393545, -2.839502447218564818, -2.837609180862810554,
-2.837609180862810554, -2.836526393188437023, -2.836526393188437023,
-2.836526393188437023, -2.833680862943071865, -2.830966469768766647,
-2.829743591062164665, -2.825524720994100569, -2.805923873667341972,
-2.805923873667341972, -2.799983281140289826, -2.772472390997511305,
-2.768379789942246649, -2.766824435443637320, -2.764275729560100370,
-2.762999699224984340, -2.745014796094586540, -2.744152629090993667,
-2.737380381285281494, -2.733474818276803830, -2.730574582701303932,
-2.717445680460369939, -2.701665112039076000, -2.700774510031100917,
-2.698694031318560338, -2.675428407219024862, -2.674064059032170704,
-2.670114064245184160, -2.668439062508604298, -2.640381059271863062,
-2.636630905835811056, -2.634751286742769150, -2.634751286742769150,
-2.633025622057135084, -2.603122198063127168, -2.593733550579019553,
-2.591943900609491092, -2.591943900609491092, -2.591943900609491092,
-2.591943900609491092, -2.591943900609491092, -2.591943900609491092,
-2.591943900609491092, -2.591943900609491092, -2.591943900609491092,
-2.591943900609491092, -2.591943900609491092, -2.591943900609491092,
-2.591943900609491092, -2.591943900609491092, -2.591943900609491092,
-2.591943900609491092, -2.557198935840220955, -2.556357760724297989,
-2.556357760724297989, -2.554504812183617801, -2.551465665960842788,
-2.551465665960842788, -2.551465665960842788, -2.557198935840220955,
-2.516036394815908128, -2.516036394815908128, -2.514109693073277363,
-2.514109693073277363, -2.514109693073277363, -2.503889574820031161,
-2.466719975263720777, -2.466719975263720777, -2.432279951567988707,
-2.430181354620980727, -2.428078119158226134, -2.428078119158226134,
-2.428078119158226134, -2.428078119158226134, -2.428078119158226134,
-2.428078119158226134, -2.424242083499746236, -2.424242083499746236,
-2.381583470295975502, -2.335383578464432563, -2.335383578464432563,
-2.335383578464432563, -2.335383578464432563, -2.335383578464432563,
-2.335383578464432563, -2.335383578464432563, -2.335383578464432563,
-2.335383578464432563, -2.333053400737972183, -2.329227393977091332,
-2.281773812575356608, -2.279750200242793845, -2.279750200242793845,
-2.234729303035567938, -2.232119825767580501, -2.229502570044278098,
-2.228071679356622870, -2.173412272402481804, -2.170612733225716795,
-2.164216418661920383, -2.104148289132928618, -2.101667801314274442,
-2.101667801314274442, -2.101667801314274442, -2.101667801314274442,
-2.101667801314274442, -2.101667801314274442, -2.051967952719272237,
-2.042858917550592679, -2.042858917550592679, -2.042858917550592679,
-2.042858917550592679, -2.042858917550592679, -2.042858917550592679,
-2.042858917550592679, -2.042858917550592679, -2.042858917550592679,
-2.042858917550592679, -2.042858917550592679, -2.036930947914699530,
-2.036930947914699530, -2.036930947914699530, -2.036930947914699530,
-2.036335917577979160, -2.036335917577979160, -2.036335917577979160,
-2.034250093056099828, -1.981994037929359465, -1.970514258229237203,
-1.970514258229237203, -1.970514258229237203, -1.970514258229237203,
-1.964070851165442777, -1.964070851165442777, -1.964070851165442777,
-1.964070851165442777, -1.964070851165442777, -1.964070851165442777,
-1.964070851165442777, -1.964070851165442777, -1.964070851165442777,
-1.880694393422799982, -1.816992136425608750, -1.800823048868167131,
-1.692108066074450079, -1.596670759700378639, -1.596670759700378639,
-1.493168944954045729, -1.455665479743565971, -1.359697782555595147,
-1.215912248155192499, -1.027898534189456425, -1.325676609134822881]
epoch = [0., 236., 1179., 1415., 1651., 1887., 2123., 2358.,
2594., 9856., 6603., 6672., 6829., 7133., 7493.,
7800., 7995., 8270., 9006., 9207., 9433., 9648.,
9657., 9679., 9684., 9888., 9894., 10120., 10315.,
10602., 7323.5, 7323.5, 9912.5, 10599.5, -3319., -2829.,
226., 226., 237., 246., 472., 490., 716., 920.,
1208., 1924., 5652., 5700., 6348., 7073., 7104.,
7133., 7277., 7820., 8711., 7294.5, 8711., -6253.,
-4404., -4249., -4247., -3996., -3091., -2323.,
-1676., -1656., -1164., -1108., 1394., -12781.,
-10840., -10407., -10407., -10354., -10334.,
-10161., -10072., -10043., -10021., -9888.,
-9884., -9877., -9808., -9731., -9720., -9651.,
-9239., -9232., -9230., -9161., -9152., -9150.,
-8973., -8951., -8935., -8906., -8904., -8889.,
-8729., -8514., -8217., -8013., -7807., -7789.,
-7787., -7778., -7776., -7776., -7769., -7767.,
-7758., -7756., -7579., -7572., -7561., -7543.,
-7534., -7521., -7519., -7512., -7501., -7492.,
-7295., -7293., -7286., -7248., -7228., -7091.,
-7082., -7073., -7071., -7051., -7033., -7031.,
-7002., -6995., -6982., -5661., -5643., -4648.,
-4030., -4028., -3981., -3755., -3755., -3527.,
-2802., -2802., -1678., -1638., -1616., -1616.,
-1614., -1598., -1598., -1598., -1598., -1589.,
-1481., -1481., -1410., -1372., -1197., -1157.,
-1155., -1155., -931., -931., -736., -734., -734.,
-665., -665., -450., -448., -441., -224., -204.,
-52., -14., -3., 19., 201., 237., 237., 434.,
434., 443., 472., 481., 512., 523., 561., 680.,
698., 727., 727., 729., 751., 884., 893., 926.,
953., 953., 957., 964., 964., 966., 1208., 1208.,
1219., 1228., 1376., 1383., 1383., 1403., 1443.,
1463., 1463., 1463., 1492., 1640., 1669.,
1669., 1689., 1691., 1698., 1797., 1844.,
1875., 1888., 1895., 1904., 1904., 1915.,
1935., 2041., 2070., 2099., 2101., 2107.,
2116., 2130., 2130., 2138., 2138., 2138.,
2159., 2179., 2188., 2219., 2362., 2362.,
2405., 2602., 2631., 2642., 2660., 2669.,
2795., 2801., 2848., 2875., 2895., 2985.,
3092., 3098., 3112., 3267., 3276., 3302.,
3313., 3495., 3519., 3531., 3531., 3542.,
3730., 3788., 3799., 3799., 3799., 3799.,
3799., 3799., 3799., 3799., 3799., 3799.,
3799., 3799., 3799., 3799., 3799., 3799.,
4009., 4014., 4014., 4025., 4043., 4043.,
4043., 4009., 4249., 4249., 4260., 4260.,
4260., 4318., 4524., 4524., 4708., 4719.,
4730., 4730., 4730., 4730., 4730., 4730.,
4750., 4750., 4967., 5191., 5191., 5191.,
5191., 5191., 5191., 5191., 5191., 5191.,
5202., 5220., 5437., 5446., 5446., 5641.,
5652., 5663., 5669., 5891., 5902., 5927.,
6153., 6162., 6162., 6162., 6162., 6162.,
6162., 6337., 6368., 6368., 6368., 6368.,
6368., 6368., 6368., 6368., 6368., 6368.,
6368., 6388., 6388., 6388., 6388., 6390.,
6390., 6390., 6397., 6567., 6603., 6603.,
6603., 6603., 6623., 6623., 6623., 6623.,
6623., 6623., 6623., 6623., 6623., 6869.,
7042., 7084., 7348., 7556., 7556., 7760.,
7829., 7995., 8219., 8476., 8050.5]
sonuc = []
del sonuc[:]
for i in range(len(nuv)):
y = a/sqrt(1 - b**2*cos(c)**2) *\
(1 - b**2)/(1 + b*cos(nuv[i])) *\
(sin(nuv[i] + c) + b*sin(c))
sonuc.append(y)
xmin = min(epoch)
xmax = max(epoch)
xlen = len(epoch)
fitx = np.linspace(xmin, xmax, xlen)
plt.plot(fitx, sonuc, "r-")
plt.plot(epoch, sonuc, "r*")
plt.show()
结果我比较了两个图,如下所示,星星代表epoch
vssonuc
,红线代表fit
vssonuc
我想我试过了各种可能性。我对x
和y
轴进行了排序。我换了位置。但结果是一样的。当我试图用一条连续的线绘制历代和sonuc时,图表1中的星星就这样变化了;
我找不到问题出在哪里 为什么要在问题中包含[r]标记?系统建议使用r标记,我认为这可能很有用,因为大多数r用户也知道python和matplotlib。谢谢你的编辑建议,我同意了。我不认为你的问题是绘图,但理解拟合的作用。我没有在这里使用拟合。我只是使用这个函数。理论上,该函数给出正弦变化。我在这里手动计算结果,所以我没有使用kmpfit函数。我从来没有说过在这里使用拟合。我是说你可能不明白。你的两个变量(依赖变量和独立变量)是什么?拟合过程的结果方程是什么?为什么在问题中包含[r]标记?系统建议使用r标记,我认为这可能很有用,因为大多数r用户也知道python和matplotlib。谢谢你的编辑建议,我同意了。我不认为你的问题是绘图,但理解拟合的作用。我没有在这里使用拟合。我只是使用这个函数。理论上,该函数给出正弦变化。我在这里手动计算结果,所以我没有使用kmpfit函数。我从来没有说过在这里使用拟合。我是说你可能不明白。你的两个变量(依赖变量和独立变量)是什么?拟合过程的结果方程是什么?