首页 > 解决方案 > 在 python 中如何绘制洛伦兹曲线?

问题描述

看来我的图表不对,但我不知道我的错误在哪里

F = [0,0.577732, 0.934668, 0.947704, 0.969366, 0.986732]

percent = [0, 0.2, 0.4, 0.6, 0.8, 1.0]
lorenz = [0, 0.2, 0.4, 0.6, 0.8, 1.0]
plt.plot(percent, lorenz, '-o')
plt.title("Perfect price Distribution")


plt.figure(figsize = (9, 5))
plt.plot(percent, lorenz, '-o', label = 'Lorenz Curve')
plt.plot(percent, F, '-o', label = 'USA')
plt.title("The Difference between Perfect and Actual Wealth Equality")
plt.legend(loc = 'best', frameon = False)

我的阴谋

标签: pythonmatplotlibgraphstatistics

解决方案


正如@JohanC 在他的评论中指出的那样,这些图与您给出的值一致。但是,当我尝试使用您的代码重新创建它时,我注意到一些标记或线段似乎有点偏离。当您使用 plt.grid() 绘制网格线时,这一点变得尤为明显。如果这是您所关心的,那么您可以尝试在 matplotlib 中使用 cairo 后端

import matplotlib as mpl
mpl.use( "cairo" )

您需要安装pycairo模块。这产生了在标记的确切位置绘制的线并且似乎没有关闭。该问题是已知的,并且例如在此处和其中的链接问题中提出了解决方案。我不知道当前是否有任何打算在默认后端解决此问题。


推荐阅读