【问题标题】:Plotting the most recent data points with Seaborn scatterplot使用 Seaborn 散点图绘制最近的数据点
【发布时间】: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

标签: python pandas seaborn scatter-plot


【解决方案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()
      

      【讨论】:

        猜你喜欢
        • 2022-01-21
        • 2021-02-20
        • 1970-01-01
        • 1970-01-01
        • 2019-09-26
        • 2015-10-01
        • 2019-01-14
        • 2017-12-03
        • 2018-07-05
        相关资源
        最近更新 更多