我有一个数据点图,其中许多数据点都在相同的值附近,因此我想将它们稍微移到一边,以便每个点都可见,而且它们不仅仅是一团糟。 / p>
我没有找到任何可以帮助我的在线代码。
mpimax=[250, 300, 350, 400, 450]
mpimax2=[400, 450, 500, 550]
Fpis=np.array([ 88.15000964, 87.82604812, 85.44423898, 84.85864079, 84.41117001])
Fpis2=np.array([ 87.24004281, 85.42371568, 86.74856596, 86.42293262])
Fpis3=[80.97814175481653, 74.12625811398735, 82.44657342612943, 87.3771939549136]
Fpiserr=[1.6053918983908735,
1.1549571932661258,
1.0139484239435315,
0.8058605526698696,
0.6640766134707818]
Fpiserr2=[1.4946328563696913, 1.414439912368433, 1.370372743102621, 1.2860068512665481]
Fpiserr3=[0.7099107986265524,
0.07387064826087104,
0.1129094733109782,
0.1318016758128941]
plt.ylim(73,94)
plt.xlim(200,600)
plt.errorbar(mpimax,Fpis,yerr=Fpiserr,fmt="ro",label='NLO x',capsize=2)
plt.errorbar(mpimax2,Fpis2,yerr=Fpiserr2,fmt="r^",label='NNLO x',mfc='none',capsize=2)
plt.errorbar(mpimax2,Fpis3,yerr=Fpiserr3,fmt="g^",label='NNNLO x',capsize=2)
plt.xlabel('$M_{\pi}^{max}$[MeV]')
plt.legend(loc='lower left', fontsize='small')
plt.savefig('Fcutoffs.png')
plt.show()
答案 0 :(得分:0)
您可以将列表转换为np数组,然后将其稍微移动,例如:
import numpy as np
import matplotlib.pyplot as plt
mpimax = np.asarray([250, 300, 350, 400, 450])
mpimax2 = np.asarray([400, 450, 500, 550])
...
plt.errorbar(mpimax, Fpis, yerr=Fpiserr, fmt="ro", label='NLO x', capsize=2)
plt.errorbar(mpimax2 + 3,
Fpis2,
yerr=Fpiserr2,
fmt="r^",
label='NNLO x',
mfc='none',
capsize=2)
plt.errorbar(mpimax2 + 6,
Fpis3,
yerr=Fpiserr3,
fmt="g^",
label='NNNLO x',
capsize=2)
plt.xlabel('$M_{\pi}^{max}$[MeV]')
plt.legend(loc='lower left', fontsize='small')
plt.savefig('Fcutoffs.png')
plt.show()