【问题标题】:Seaborn jointplot with defined axes limits具有定义轴限制的 Seaborn 联合图
【发布时间】:2019-07-23 21:12:34
【问题描述】:

我正在尝试使用 Seaborn 的联合绘图命令生成一些图形。我有一个名为“数据”的元组列表,其中包含需要绘制的坐标 (x,y)。 x 坐标在 (200,1400) 范围内,y 坐标在 (300,900) 范围内。但是,我需要展示我正在工作的整个区域,展示点的集中度。我需要 x 坐标在 (0,3000) 范围内,y 坐标在 (0-1200) 范围内,但我没有这样做。

这是我的代码:

import seaborn as sns
import numpy as np

np.shape(y)
xx = np.linspace(0,1080,np.shape(y))
yy = np.linspace(0,1920,np.shape(y))

sns.jointplot(xx="x", yy="y", data=data, kind="kde")

我返回错误:“TypeError:jointplot() 缺少 2 个必需的位置参数:'x' 和 'y'”。

如果我不使用 xx 和 yy 变量,它会自动限制坐标轴。

如何将轴设置为我需要的范围?

【问题讨论】:

  • sns.jointplot(x=xx, y=yy, data=data, kind="kde")

标签: python seaborn


【解决方案1】:

您可以绘制数据并稍后修改绘图的轴限制:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# generate some random date
x = np.random.normal(loc=650, scale=100, size=1000)
y = np.random.normal(loc=600, scale=200, size=1000)

plot = sns.jointplot(x, y, kind="kde")
plot.ax_marg_x.set_xlim(0, 3000)
plot.ax_marg_y.set_ylim(0, 1200)

plt.show()

【讨论】:

  • 它似乎在生成子图后切断了限制,使一些剩余的峰值非常小(换句话说,没有标准化/缩放)。有没有一种干净的方法来实际修剪该数据(而不是在调用 jointplot 之前手动执行)然后重新计算/重绘?
  • 绘图函数通常用于绘制给定数据,而不是清理/修剪它。我认为你的问题更适合作为一个新问题,而不是对另一个问题的这个答案的评论。
猜你喜欢
  • 2020-08-26
  • 2021-12-27
  • 2020-03-06
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多