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
vs
sonuc
,红线代表
fit
vs
sonuc

我想我试过了各种可能性。我对
x
y
轴进行了排序。我换了位置。但结果是一样的。当我试图用一条连续的线绘制历代和sonuc时,图表1中的星星就这样变化了;
我找不到问题出在哪里

为什么要在问题中包含[r]标记?系统建议使用r标记,我认为这可能很有用,因为大多数r用户也知道python和matplotlib。谢谢你的编辑建议,我同意了。我不认为你的问题是绘图,但理解拟合的作用。我没有在这里使用拟合。我只是使用这个函数。理论上,该函数给出正弦变化。我在这里手动计算结果,所以我没有使用kmpfit函数。我从来没有说过在这里使用拟合。我是说你可能不明白。你的两个变量(依赖变量和独立变量)是什么?拟合过程的结果方程是什么?为什么在问题中包含[r]标记?系统建议使用r标记,我认为这可能很有用,因为大多数r用户也知道python和matplotlib。谢谢你的编辑建议,我同意了。我不认为你的问题是绘图,但理解拟合的作用。我没有在这里使用拟合。我只是使用这个函数。理论上,该函数给出正弦变化。我在这里手动计算结果,所以我没有使用kmpfit函数。我从来没有说过在这里使用拟合。我是说你可能不明白。你的两个变量(依赖变量和独立变量)是什么?拟合过程的结果方程是什么?