Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib ax.fill_在上面的填充之间,而不是下面的填充之间_Python_Matplotlib - Fatal编程技术网

Python Matplotlib ax.fill_在上面的填充之间,而不是下面的填充之间

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

我试图使用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]