使用Matplotlib在Python中绘制曲线和x轴之间的区域填充

2024-09-27 23:21:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用MatPlotLib在Python中简单地填充绘图曲线下的区域。

这是我的小册子:

import json
import pprint
import numpy as np
import matplotlib.pyplot as plt

y = [0,0,0,0,0,0,0,0,0,0,0,863,969,978,957,764,767,1009,1895,980,791]
x = np.arange(len(y))


fig2, ax2 = plt.subplots()
ax2.fill(x, y)

plt.savefig('picForWeb.png')
plt.show()

所附图片显示了所产生的输出。output of fill

有人知道为什么Python没有填充x轴和曲线之间的整个区域吗?

我做过Google和StackOverflow搜索,但找不到类似的例子。直觉上,它似乎应该填满曲线下的整个区域。


Tags: importnumpyjson区域绘图matplotlibasnp
3条回答

我通常使用fill_between函数来绘制这类图。试试这样的方法:

import numpy as np
import matplotlib.pyplot as plt

y = [0,0,0,0,0,0,0,0,0,0,0,863,969,978,957,764,767,1009,1895,980,791]
x = np.arange(len(y))

fig, (ax1) = plt.subplots(1,1); 
ax1.fill_between(x, 0, y)
plt.show()

请参阅更多示例here

plt.fill假设有一个闭合的形状要填充-有趣的是,如果将最后一个0添加到数据中,会得到一个更合理的绘图。

import numpy as np
import matplotlib.pyplot as plt

y = [0,0,0,0,0,0,0,0,0,0,0,863,969,978,957,764,767,1009,1895,980,791,0]
x = np.arange(len(y))


fig2, ax2 = plt.subplots()
ax2.fill(x, y)

plt.savefig('picForWeb.png')
plt.show()

结果: Closed Plot

希望这有助于解释你的诡计。

如果要在pd.DataFrame上使用此命令,请使用此命令:

df.abs().interpolate().plot.area(grid = 1,
                                  linewidth = 0.5)

interpolate()是可选的。

enter image description here

相关问题 更多 >

    热门问题