Python Seaborn如何为Jointplot设置xlim和ylim,以及如何去掉分布信息在图像上方和右侧。

5

你好,我刚开始学习Python和Seaborn。我想在一个Seaborn的jointplot中设置x轴和y轴的限制。此外,我想在主图下方和右侧不显示分布信息。请问如何实现?我尝试了以下代码:

import numpy as np 
import matplotlib.pyplot as plt from
matplotlib.ticker import NullFormatter 
import seaborn as sns
sns.set(style="ticks")


xData = np.random.rand(100,1)*5 
yData = np.random.rand(100,1)*10


xlim = [-15 15] 
ylim = [-20 20]

g = sns.jointplot(xData, yData, kind="hex", color="b", xlim, ylim)

抱歉,我没有表述清楚。我想使用带有六边形的联合图 kind="hex"。但是,kdeplot 不支持这样的绘图方式。此外,我尝试通过 g = sns.jointplot(xData, yData, kind="hex")axes = g.axesaxes.set_ylim(20) 在轴上应用 set_xlimset_ylim,但出现错误,因为 jointgrid 没有轴属性。 - Luk-StackOverflow
在jointplot的文档中,写着要使用两个元组来设置x和y轴的限制,但我不明白应该用什么语法。 - Luk-StackOverflow
2个回答

8

xlimylim应该是元组。因此,您的代码应该是:

import numpy as np 
import matplotlib.pyplot as plt from
matplotlib.ticker import NullFormatter 
import seaborn as sns
sns.set(style="ticks")

xData = np.random.rand(100,1)*5 
yData = np.random.rand(100,1)*10

g = sns.jointplot(xData, yData, kind="hex", color="b", xlim = (-15,15), ylim = (-20,20))

1
一个 seaborn 中 kind="hex"jointplot 的联合轴是 matplotlib 的 hexbin 图。因此,你可以直接调用 plt.hexbin(xData, yData)
import numpy as np 
import matplotlib.pyplot as plt

xData = np.random.rand(100,1)*5 
yData = np.random.rand(100,1)*10

xlim = [-5, 10] 
ylim = [-5, 15]

plt.hexbin(xData, yData, gridsize=10)
plt.xlim(xlim)
plt.ylim(ylim)

plt.show()

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接