【问题标题】:Plotting numpy array using Seaborn使用 Seaborn 绘制 numpy 数组
【发布时间】:2018-09-29 15:57:49
【问题描述】:

我正在使用 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 值?要散点图吗?

标签: python numpy matplotlib machine-learning seaborn


【解决方案1】:

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

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()

这是一个 stackoverflow post 对 sns.lmplot 做同样的事情

【讨论】:

  • 感谢您的成功。我认为它可以满足我的要求,现在我的任务是回到功能并进行调查。谢谢!!第二个示例导致此错误:AttributeError: 'module' object has no attribute 'scatterplot'
  • 请注意我的数据没有逗号作为分隔符
  • 只使用X和Y代替数组,不需要逗号作为分隔符,pd.DataFrame可以选择设置分隔符。
  • sns.scatterplot 是一个有效的函数,我为它添加了 api 文档。
  • 它看起来像是 0.9.0 中添加的新功能。你能举一个 0.8.0 的 sns.(function) 的例子吗?我尝试了它给 TypeError 的另一个帖子解决方案:lmplot() got an unexpected keyword argument 'c'
猜你喜欢
  • 2019-04-09
  • 1970-01-01
  • 2019-10-23
  • 2020-06-22
  • 1970-01-01
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多