使用 Seaborn 散点图绘制最近的数据点

Posted

技术标签:

【中文标题】使用 Seaborn 散点图绘制最近的数据点【英文标题】:Plotting the most recent data points with Seaborn scatterplot 【发布时间】:2019-09-26 04:39:49 【问题描述】:

我正在尝试使用 Seaborn 的散点图绘制股票的预测值与实际值,我可以很好地绘制散点图,但我想要做的也是以不同的颜色可视化今天的数据在哪里。

我试过了:

current_x = df['Prediction'].iloc[-1]
current_y = df['Actual'].iloc[-1]

并绘制它,但收到此错误消息:

ValueError: If using all scalar values, you must pass an index.

任何帮助都将不胜感激。

编辑:

所以我有一个df,其中包含一个df['Prediction']df['Actual'] 列的价格数据,我目前使用的打印散点图的代码非常简单:

sns.scatterplot(x='Predicted', y='Actual, data=data)

我正在寻找的只是在这个原始散点图的顶部绘制 x 和 y 的最新数据,如果您愿意,可以为每个数据绘制 .iloc[-1]

【问题讨论】:

请发布sample data 甚至绘制代码,以便我们了解您的流程。 嗨,伙计,没错,刚刚编辑了它 看看matplotlib的animation。 【参考方案1】:

创建散点图时使用参数hue。如果您没有hue,您可以轻松地为您的简单案例创建一个:

data['hue']=[0]*(len(df)-1)+[1]
sns.scatterplot(x='Predicted', y='Actual', hue='hue', data=data)

【讨论】:

【参考方案2】:

有点老套,但这行得通。

data = pd.DataFrame('Prediction': np.random.rand(10), 
                     'Actual': np.random.rand(10))

sns.scatterplot(x='Prediction', y='Actual', data=data)
sns.scatterplot(x='Prediction', y='Actual', data=data.iloc[-1].to_frame().T)

【讨论】:

【参考方案3】:

如果您想直接使用 matplotlib 而不是 seaborn,那么将除最后一个点和最后一个点之外的所有内容都单独绘制是非常简单的。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = pd.DataFrame('Prediction': np.random.rand(10), 
                     'Actual': np.random.rand(10))

# Plot all but the last point
plt.scatter(x='Prediction', y='Actual', data=data.iloc[:-1])
# Plot only the last point
plt.scatter(x='Prediction', y='Actual', data=data.iloc[-1])

plt.show()

【讨论】:

以上是关于使用 Seaborn 散点图绘制最近的数据点的主要内容,如果未能解决你的问题,请参考以下文章

使用 matplotlib 向箱线图添加点散点图

根据 Seaborn 中的散点图绘制热图

python--seaborn散点图

seaborn 的 lmplot 的输出没有绘制散点图和线性回归

Seaborn 散点图 X 和 Y 的颜色

Python绘图之seaborn