当我尝试应用 searborpairplot 时,出现错误。我的完整脚本很简单,复制如下:
import seaborn as sns
import pandas as pd
import numpy as np
# Creating a sample DataFrame
data = {
'A': np.random.randn(100),
'B': np.random.randn(100),
'C': np.random.randn(100),
'D': np.random.randn(100)
}
df = pd.DataFrame(data)
# Create a pair plot
sns.pairplot(df)
Run Code Online (Sandbox Code Playgroud)
但我抛出了这个错误:
---------------------------------------------------------------------------
OptionError Traceback (most recent call last)
Cell In[26], line 15
12 df = pd.DataFrame(data)
14 # Create a pair plot
---> 15 sns.pairplot(df)
File ~/miniforge3/envs/marketing/lib/python3.9/site-packages/seaborn/_decorators.py:46, in _deprecate_positional_args..inner_f(*args, **kwargs)
36 warnings.warn(
37 "Pass the following variable{} as {}keyword …Run Code Online (Sandbox Code Playgroud) 这是一个片段,用于重现我的示例图像:
import pandas as pd
import numpy as np
import seaborn as sns
np.random.seed(42)
df = pd.DataFrame(np.random.rand(10,2), columns=['x', 'y'])
df['label'] = ['cat', 'mouse', 'dog', 'mouse', 'cat', 'cat', 'mouse', 'mouse','dog', 'cat']
sns.pairplot(df, hue='label');
Run Code Online (Sandbox Code Playgroud)
它生成以下seaborn对图,以及一些虚拟数据:
在右上图中,“狗”类别的一个标记位于“鼠标”类别的覆盖标记下方。
我可以以某种方式更改散点图标记的 z 顺序,以便“狗”类别的所有标记在顶部最清晰可见吗?
编辑:我已经尝试过hue_order=['mouse', 'cat', 'dog']和hue_order=['dog', 'mouse', 'cat'],但它们只影响图例和颜色中的顺序。不是散点图中标记的 z 顺序。
我有一个数据框,我正在使用 seabornpairplot来绘制一个目标列与其余列的对比。
代码如下,
import seaborn as sns
import matplotlib.pyplot as plt
tgt_var = 'AB'
var_lst = ['A','GH','DL','GT','MS']
pp = sns.pairplot(data=df,
y_vars=[tgt_var],
x_vars=var_lst)
pp.fig.set_figheight(6)
pp.fig.set_figwidth(20)
Run Code Online (Sandbox Code Playgroud)
这var_lst不是静态列表,我只是提供了一个示例。tgt_var我需要的是在 Y 轴上绘制,var_lst在 x 轴上绘制。
我可以使用上面的代码来做到这一点,但我也想仅当项目var_lst是“GH”或“MS”时才在 X 轴上使用对数刻度,对于其余的正常刻度。有什么办法可以实现这一点吗?
我有一个 36000 行和 51 列的数据集。每行都是一个观察值,前 50 列是每个观察值的 50 个不同特征。第 51 列的值为 0 或 1,其中 0 表示观测值属于 A 类,1 表示观测值属于 B 类。
现在假设我想制作第一列的值的直方图,将其称为“Feature1”。据我所知,matplotlib的plt.hist()无法在同一个图中绘制2个直方图,其中一个对应于A类中Feature1的特征,另一个对应于B类中的特征。另外,seaborn 的 sns.distplot 也不能做到这一点。所以我决定尝试seaborn的pairplot如下
sns.pairplot(df, vars = ["Feature1"], hue= "Class", diag_kind = "hist", diag_kws= dict(alpha=0.55))
Run Code Online (Sandbox Code Playgroud)
Feature1 是第一列的名称,Class 是最后一列的名称,其中包含每个观测值的类标签。显示的直方图很好,但我想增加使用的垃圾箱数量。遗憾的是我没有找到任何方法来使用这个特定的函数来做到这一点。
有人知道这个问题的解决方案吗?谢谢
pairplot ×4
python ×4
seaborn ×4
histplot ×1
inf ×1
matplotlib ×1
pandas ×1
python-3.x ×1
z-order ×1