【问题标题】:Seaborn jointplot hex option does not produce figureSeaborn jointplot hex 选项不生成图形
【发布时间】:2016-12-08 11:38:03
【问题描述】:

我正在将 Pandas DataFrame 绘制为 Seaborn 联合图,并希望使用 'hex' 函数:

g = sns.jointplot("Xs", "Ys", data=PlotData, kind='hex', color="#4CB391")

DataFrame 都是浮点数,不包含任何 NaN:

In [34]:  PlotData.describe()
Out[34]: 
                 Xs            Ys
count  47856.000000  47856.000000
mean       2.125714     -0.458991
std        0.423019      1.750042
min        0.000000    -23.829382
25%        2.000000     -1.195314
50%        2.000000      0.000000
75%        2.301030      0.000000
max        5.939478     11.099151

结果是一个空白图,尽管它确实产生了边际分布和回归统计:

我可能缺少什么?我正在使用 Python 3.4、Seaborn 0.7 和 Pandas 0.18。谢谢!

更新在进行下面彼得建议的更改时,结果如下:

因此,x=2 附近的集中点似乎导致了极端缩放。

【问题讨论】:

  • 感谢您的更新。它仍然不是典型的十六进制图。似乎您的数据并不适合这种绘图。
  • 我同意。恕我直言,边际分布在这方面有点误导。这也是为什么当您有 50k 个数据点时,允许重叠点的散点图是危险的。

标签: python python-3.x pandas seaborn


【解决方案1】:

似乎有一个像素接近彩色的平均值 (2, -0.5)。您的数据集的标准偏差也很低,因此可能是 bin 太小并且异常值太多而无法查看实际分布。我建议要么删除异常值并重试,要么使用jointplot 明确设置轴限制。

【讨论】:

  • 有趣。现在你说它,我实际上看到了两个绿点。可以尝试kind=kde 并使用bw=x 使用不同的带宽值来查看此分箱/平滑是否是问题所在。尽管如此,我期待一个大的十六进制,如果数据是居中的。也许需要查找来源。但是你的建议听起来很中肯!
  • 是的,问题是数据疯狂地集中在非常特殊的点上,尤其是 (2,0),这会淹没其余部分并导致小垃圾箱。这表明它更好一点: sns.jointplot("Xs", "Ys", data=PlotData, kind='hex', color="#4CB391", ylim=(-1.5,1.5), xlim=(1.9, 2.3))。
  • 令人惊叹的眼睛,顺便说一句
  • @crow_t_robot 出于好奇:您能否在彼得建议您的问题进行更改后添加新情节(如更新;如果工作量不大的话)?
猜你喜欢
  • 2015-07-06
  • 2022-07-28
  • 2019-10-28
  • 1970-01-01
  • 2018-09-15
  • 2018-03-29
  • 2018-12-15
  • 2021-09-01
  • 2018-12-05
相关资源
最近更新 更多