我试图使用MatPlotLib在Python的曲线下填充曲线区域。
这是我的SSCCE:
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()
附图显示了产生的输出。
有谁知道为什么Python没有填充x轴和曲线之间的整个区域?
我已完成Google和StackOverflow搜索,但无法找到类似的示例。直觉上它似乎应该填满曲线下的整个区域。
答案 0 :(得分: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。
答案 1 :(得分:1)
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()
结果:
希望这有助于解释你的奇怪情节。
答案 2 :(得分:1)