使用Seaborn散点图绘制最新数据点

时间:2019-05-08 12:31:00

标签: python pandas seaborn scatter-plot

我正在尝试使用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]

3 个答案:

答案 0 :(得分:3)

在创建散点图时使用参数hue。如果您没有hue,则可以根据自己的情况轻松创建一个:

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

答案 1 :(得分:2)

有点hacky,但这行得通。

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)

答案 2 :(得分:1)

如果您想直接使用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()

enter image description here