我正在尝试使用matplotlib绘制Lorenz曲线,我想填充Lorenz曲线下面的区域,这是我编写代码的方式:
import { Meteor } from 'meteor/meteor';
if (Meteor.isServer){
Meteor.startup(() => {
process.env.MAIL_URL="smtp://mygmailaddress%40gmail.com:mypassword@smtp.gmail.com:465/";
Email.send({
to: "sendeto@yahoo.com",
from: "sendfrom@gmail.com",
subject: "Example Email",
text: "The contents of our email in plain text.",
});
});
}
最终结果如下:
显然它没有按预期工作,因为我想填补曲线以下的区域。
我尝试了其他一些例子:
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("darkgrid")
# I used seaborn for different styles.
x = [0, 0.10304926499801351, 0.20455899880810488, 0.30986789829161698,
0.41132796980532377, 0.51018077075883983, 0.61201330949543098,
0.71223182359952319, 0.81185439014700034, 0.91063269765593957,
1.0]
y = [0, 0.016037735849056604, 0.033018867924528301, 0.063207547169811321,
0.087735849056603782, 0.13962264150943399, 0.20000000000000001,
0.27547169811320754, 0.37264150943396224, 0.53018867924528301,
1.0]
fig, ax = plt.subplots()
ax.fill(x, y, 'b', alpha=0.3)
plt.show()
他们一切都很好。我一定错过了自己的情节,但无法弄明白。有什么想法吗?
答案 0 :(得分:3)
我认为您要使用fill_between
代替fill
。
fill
填充曲线点之间的区域。因此,您得到的结果是预期的。
fill_between
填充curce与其他曲线或常量y
值之间的区域。
使用
ax.fill_between(x, y, y2=0, color='b', alpha=0.3)
你得到y = 0零线和曲线填充之间的区域: