Python Matplotlib ax.fill_在上面的填充之间,而不是下面的填充之间
我试图使用ax.fill\u between来绘制曲线下的区域,但出于某种奇怪的原因,一条曲线绘制得很好,而另一条曲线绘制得不好,出了什么问题 代码:Python Matplotlib ax.fill_在上面的填充之间,而不是下面的填充之间,python,matplotlib,Python,Matplotlib,我试图使用ax.fill\u between来绘制曲线下的区域,但出于某种奇怪的原因,一条曲线绘制得很好,而另一条曲线绘制得不好,出了什么问题 代码: \uAX=plt.子批次(figsize=(9,7)) sns.线形图(x1,y1) (x1,y1,alpha=0.3)之间的最大填充量 sns.线形图(x2,y2) (x2,y2,alpha=0.3)之间的最大填充量 结果: 我也试过ax.fill\u-between(x2,y2,0,alpha=0.3)和ax.fill\u-between
\uAX=plt.子批次(figsize=(9,7))
sns.线形图(x1,y1)
(x1,y1,alpha=0.3)之间的最大填充量
sns.线形图(x2,y2)
(x2,y2,alpha=0.3)之间的最大填充量
结果:
我也试过
ax.fill\u-between(x2,y2,0,alpha=0.3)
和ax.fill\u-between(x2,0,y2,alpha=0.3)
,但我得到了相同的图。如果数据没有排序,可能会发生类似的情况。举个例子,考虑一个数据集,其中第一个x值与上一个,相同。
import numpy as np; np.random.seed(346)
import matplotlib.pyplot as plt
x = np.linspace(0, 50, 51)
x[0] = x[-1]
y = np.cumsum(np.random.randn(51))+6
fig, ax = plt.subplots()
ax.plot(x,y)
ax.fill_between(x,y, alpha=0.3)
plt.show()
因此,显然可以先对数据进行排序来解决这个问题。例如:
ind = np.argsort(x)
x=x[ind]
y=y[ind]
如果数据未排序,可能会发生类似的情况。举个例子,考虑一个数据集,其中第一个x值与上一个,相同。
import numpy as np; np.random.seed(346)
import matplotlib.pyplot as plt
x = np.linspace(0, 50, 51)
x[0] = x[-1]
y = np.cumsum(np.random.randn(51))+6
fig, ax = plt.subplots()
ax.plot(x,y)
ax.fill_between(x,y, alpha=0.3)
plt.show()
因此,显然可以先对数据进行排序来解决这个问题。例如:
ind = np.argsort(x)
x=x[ind]
y=y[ind]