首页 > 解决方案 > 使用 Seaborn 绘制 numpy 数组

问题描述

我正在使用python 2.7。我知道这将是非常基本的,但是我真的很困惑,我想更好地了解 seaborn。

我有两个 numpy 数组Xy我想使用 Seaborn 来绘制它们。

这是我的Xnumpy 数组:

[[ 1.82716998 -1.75449225]
 [ 0.09258069  0.16245259]
 [ 1.09240926  0.08617436]]

这是ynumpy 数组:

[ 1. -1.  1. ]

考虑到y数组中的类标签,如何成功绘制数据点?

谢谢,

标签: pythonnumpymatplotlibmachine-learningseaborn

解决方案


您可以使用 seaborn 函数绘制图形。执行 dir(sns) 以查看所有图。这是您的输出sns.scatterplot您可以在此处查看 api 文档或在此处查看带有绘图的示例代码

import seaborn as sns 
import pandas as pd

df = pd.DataFrame([[ 1.82716998, -1.75449225],
 [ 0.09258069,  0.16245259],
 [ 1.09240926,  0.08617436]], columns=["x", "y"])

df["val"] = pd.Series([1, -1, 1]).apply(lambda x: "red" if x==1 else "blue")


sns.scatterplot(df["x"], df["y"], c=df["val"]).plot()

在此处输入图像描述 这是您想要的确切输入输出吗?

你可以用 pyplot 做到这一点,只需导入 seaborn 更改 pyplot 颜色和绘图方案

import seaborn as sns 

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

df = pd.DataFrame([[ 1.82716998, -1.75449225],
 [ 0.09258069,  0.16245259],
 [ 1.09240926,  0.08617436]], columns=["x", "y"])
df["val"] = pd.Series([1, -1, 1]).apply(lambda x: "red" if x==1 else "blue")
ax.scatter(x=df["x"], y=df["y"], c=df["val"])
plt.plot()

这是一个用 sns.lmplot 做同样事情的stackoverflow 帖子


推荐阅读