[英]Matplotlib fill between
我想使用填充或任何必要的颜色而不是在此图中绘制点。 基本上用连续的颜色带代替点。 我怎样才能做到这一点?
相关代码如下(点可以认为是三组实验数据,或多或少是)
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
from pylab import figure, show
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
fig = figure()
ax = fig.add_subplot(111)
p1, = ax.plot(x_124,y_124,'o')
p2, = ax.plot(x_125,y_125,'o')
p3, = ax.plot(x_126,y_126,'o')
xmax=max(x_124+x_125+x_126)
xmin=min(x_124+x_125+x_126)
ymax=max(y_124+y_125+y_126)
ymin=min(y_124+y_125+y_126)
plt.title('Escenario $m_{h}^{\mathrm{max}}$')
plt.ticklabel_format(style='sci',scilimits=(0,0),axis='both')
ax.xaxis.set_major_locator(MaxNLocator(12))
ax.yaxis.set_major_locator(MaxNLocator(12))
plt.xlim(0.96*xmin,1.04*xmax)
plt.ylim(0.96*ymin,1.04*ymax)
plt.legend(['$m_h$ = 124 GeV','$m_h$ = 125 GeV','$m_h$ = 126 GeV'],numpoints=1,loc=0)
plt.xlabel('M3SQ / GeV')
plt.ylabel('M3SU / GeV')
ax.grid()
show()
我知道这是一个不完整的答案,应该有一种更优雅的方法来做到这一点。 但它应该作为一种快速而肮脏的方法,至少对于您图形的右上角。
对于每个 m_h,
当然,通过这种方式,您必须决定如何连接不同的“连续色带”,例如右上角的红色和绿色。
对于图中给定数量的“点”,此方法不适用于中间的一组点(图中大致从 y=1.6 到 x=1.6 的点)。 这是因为您无法从一系列一维点构建带。 您需要更多样品。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.