使用Seaborn绘制numpy数组

13

我正在使用Python 2.7。虽然这很基础,但是我很困惑,希望更好地了解Seaborn。

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

这是我的X numpy数组:

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

以下是 y numpy 数组:

[ 1. -1.  1. ]

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

谢谢您,


你能否添加一下你希望如何将X和Y相关联以及X代表什么?X数组的形状为2 x 3个值。这个数组中的两个元素是x,y坐标吗?如何显示Y值?您想要散点图吗? - devssh
1个回答

12
您可以使用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()

提供

enter image description here 这是你想要的完全的输入输出吗?

你可以使用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()

这里是一个stackoverflow帖子,介绍如何使用sns.lmplot实现相同效果。


谢谢,这个方法可行。我认为它现在已经实现了我的需求,现在我的任务是回到功能并进行调查。谢谢!第二个例子导致了这个错误: AttributeError: 'module' object has no attribute 'scatterplot' - user3446905
请注意,我的数据没有逗号作为分隔符。 - user3446905
只需使用X和Y代替数组,不需要逗号作为分隔符,pd.DataFrame有设置分隔符的选项。 - devssh
sns.scatterplot是一个有效的函数,我已经添加了它的API文档。 - devssh
看起来这是在0.9.0版本中新增的一个新功能。你能给出一个sns.(function)在0.8.0中的例子吗?我尝试了其他帖子的解决方案,但它报错:TypeError: lmplot() got an unexpected keyword argument 'c'。 - user3446905
这是 seaborn 0.8.1 中 lmplot 的 API https://web.archive.org/web/20171230053852/http://seaborn.pydata.org:80/generated/seaborn.lmplot.html#seaborn.lmplot 它展示了如何直接使用 DataFrame 的数据属性来为绘图着色。例如 g = sns.lmplot(x="total_bill", y="tip", hue="smoker", data=tips,palette=dict(Yes="g", No="m")) 如果您使用 pyplot 版本的答案,您将能够在 ax 对象上多次绘制。因此,您可以使用 df.loc[predicate, "column"] 查看一次使用一个颜色的 dataframe,并再次使用另一种颜色进行绘制。 - devssh

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