Numpy 用matplotlib在jupyter中绘制高指数数据,得到一条直线

Numpy 用matplotlib在jupyter中绘制高指数数据,得到一条直线,numpy,matplotlib,ipython,jupyter,Numpy,Matplotlib,Ipython,Jupyter,我有一个范围从E^-35到E^-17的数据,根据plt.arange(0,1,0.01,float)绘制 但结果并不像我预期的那样 它在x=0时显示为散点图 fig0 = plt.figure() ax0 = fig0.add_subplot( 111 ) ax0.scatter( data, np.arange(0,1,0.01, float) ) plt.show() 我的数据是 [8.13747474747474746748484825252525977 7 7 7 7 7 7 7 7

我有一个范围从E^-35到E^-17的数据,根据plt.arange(0,1,0.01,float)绘制

但结果并不像我预期的那样

它在x=0时显示为散点图

fig0 = plt.figure()
ax0 = fig0.add_subplot( 111 )
ax0.scatter( data, np.arange(0,1,0.01, float) )
plt.show()

我的数据是


[8.13747474747474746748484825252525977 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 5 5 5 5 5 5 5 5 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 266026,4.084044141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141419 9 9 9 9 9 9 9 9 9 9 25252525252525252525252525259,1,1,1,1,1,1,1.4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141一,。7.78956565656568686856566-20,1.59787864248787125893E-19,1.597878787864642487872525893E-19,1.597878787878646464878787872525252525258 8 8 8 8 8 8 8 7.59786464646464282828282887878725252525252525893 3 3 E-19,1.1.59787878786464646464878787878725252525252525893 3 3 3 3 3-3 3 3 3 3 3 3 3-19,1.5-19,1.59787 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7-8-8-8-8 8-8-8-8 8 8-8 8-8 8 8 8 8-8-8 8 8 8 8 8-8四,16,4.5697702677777878808088966 6 E-16,6.9443666666664040404066666666666666666666666664644 E-16,6.944366666666666666666666666666666666666666666666666666666666666666666666666664644 4 4 E-16,1.03434343439191777777917777777777777777779180808080878585858-15,1.1-15,1.03434391919191919191919191917777777777878585858-15,1-15,1-15,1-15,1.1.03439191917-15,1.1-15,1.1.737373737373737373737373737373732525252525252525252525252525252525731-14,1.85133其中,2.59307146787865555555555555555565656555555-14,2.97817574748164367E-14,2.9781757574747474747 7 7 7 7 7-7 7 7 7 7-14,2.977 7-7 7 7-7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 E-7 E-7 7,3.2727272727272727272727272727747474747 7 7 7 7 7 73737373737373737 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 31389593E-14,2.53415758453624242E-14,2.534157575758453626242E-14,2.156160671717149497332E-14,2.156161606606717141414141414141414141414141414141414141414141414141414141414141414141414141414141417,2.256161616161616160671717171717171717171717373737373737373736262626242424242424242424242E-14,2.2.15,2.1541414141414141414141414141414141414141414141414141414141414141414141414141417,2-14,2.41417,2.2.4141414141414141417,2.25252525252573626262626262626262444890073833e-16,6.5215618448657109e-16,4.2784114065927355e-16,2.7512343183374094e-16,1.7341502674112552e-16,1.0714205813048751e-16,6.4885454703296974e-17,3.8516678681795513e-17,2.241164274278722972E-17,1.2781861811609836e-17,7.14558726179816E-18,3.917770388E-518]

Matplotlib无法选择与数据匹配的线性比例。由于x坐标数据的大小范围很广,可能对数比例更适合您:

fig0 = plt.figure()
ax0 = fig0.add_subplot( 111 )
ax0.scatter( data, np.arange(0,1,0.01, float) )
ax0.set_xlim(np.min(data), np.max(data))
ax0.set_xscale('log')
plt.show()

谢谢你的回复,考虑到它在matlab上成功绘制,这很奇怪。对数刻度并没有真正显示我想表达的观点,我的意思是它确实显示了,但在matlab上看起来更好。如果你想在matplotlib中获得同样的效果,你可能必须发布一张图片,说明你想要的图形是什么样子。我弄明白了什么错了,我使用了错误的函数。应该用plt.plot而不是.scatter.菜鸟错误。无论如何,谢谢