gpt4 book ai didi

python - 为什么 sns.lmplot 和 FacetGrid+plt.scatter 从相同的数据创建不同的散点?

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:53 25 4
gpt4 key购买 nike

我对 Python、pandas DataFrames 和 Seaborn 还很陌生。当我试图更好地理解 Seaborn,尤其是 sns.lmplot 时,我发现由相同数据构成的两个图形之间存在差异,我认为它们应该看起来很相似,但我想知道为什么会这样。

数据:我的数据是一个 pandas DataFrame,它有 454 行和 19 列。与此问题相关的数据包括 4 列,看起来像这样:

列:Av_density;预测2;本地地址;年份;

变量类型:连续变量;连续变量;分类变量 1...4;分类 2012...2014

没有缺失的数据点。

我的目标是绘制一个 2x2 图面板,分别描述每个 LOC(=位置)的 Av_density 和 pred2 之间的关系,并用不同颜色标记年份。我给 seaborn 打电话:

import seaborn as sns
sns.set(style="whitegrid")
np.random.seed(sum(map(ord, "linear_categorical")))

(旁白:出于某种原因,调用“linear_quantitative”不起作用,即我得到一个"file"stdin”,第 2 行 sns.lmplot("Av_density", "pred2", Data, col="LOC", hue="YEAR", col_wrap=2);
^SyntaxError: 语法无效")

图法一、FacetGrid + 散点图:

sur=sns.FacetGrid(Data,col="LOC", col_wrap=2,hue="YEAR")
sur.map(plt.scatter, "Av_density", "pred2" );
plt.legend()

这会准确地生成很好的数据散点图。你可以在这里看到图片:https://drive.google.com/file/d/0B7h2wsx9mUBScEdUbGRlRk5PV1E/view?usp=sharing

作图方法二、sns.lmplot:

sns.lmplot("Av_density", "pred2", Data, col="LOC", hue="YEAR", col_wrap=2);

这会生成按 LOC 准确划分的图形面板,年份采用不同颜色,但数据点的散布看起来不正确。相反,它看起来 lmplot 已经线性化了数据点,并且除了回归线之外还丢失了它应该绘制的原始散点。您可以在此处查看该图:https://drive.google.com/file/d/0B7h2wsx9mUBSRkN5ZXhBeW9ob1E/view?usp=sharing

我的数据每年每个位置只产生三个点,我首先想知道这是否是造成 lmplot 数据点“错误”的原因。最理想的是,我会用一条较短的线来描述几年之间的趋势,而不是适当的回归,但我还没有弄清楚代码。

但在解决该问题之前,我真的很想知道是否有我做错的地方可以修复,或者这是否是 lmplot 试图处理我的数据的问题?

热烈欢迎任何帮助、评论和想法!

-TA-

附言。我正在使用 Spyder 2.3.4 运行 Python 2.7.8

编辑: 我通过添加第一种方法来缩短“趋势线”:

sur.map(plt.plot,"Av_density", "pred2" );

仍然想知道是什么让 lmplot 弄乱了图形。

最佳答案

问题可能只是添加的回归线弄乱了 y 轴,因此看不到数据的可变性。尝试根据原始图中的可变性重置 y 轴,看看它们是否显示相同的东西,例如

fig1 = sns.lmplot("Av_density", "pred2", Data, col="LOC", hue="YEAR", col_wrap=2);
fig1.set(ylim=(-0.03, 0.05))
plt.show(fig1)

关于python - 为什么 sns.lmplot 和 FacetGrid+plt.scatter 从相同的数据创建不同的散点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30324583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com