【问题标题】:Visualizing Prediction and Test values for comparison [duplicate]可视化预测和测试值以进行比较[重复]
【发布时间】:2022-07-08 17:07:50
【问题描述】:

我想让比较这个预测值和测试值更容易,所以我正在考虑两种方法来实现这一点:

  1. 将 X 轴和 Y 轴缩放到相同的比例
  2. 绘制一条直线 (y=x)
  3. 真的很想有某种方法来“排除”异常值或“放大”到点密集的区域,而无需手动从数据集中排除异常值(因此它会自动完成)。这可能吗?
sns.scatterplot(y_pred, y_true)
plt.grid()

环顾四周并测试了plt.axis('equal'),正如另一个问题中提到的那样,但它似乎不太正确。尝试使用plt.plot((0,0), (30,30)) 创建线性图,但没有显示任何内容。关于如何可视化这一点的任何其他输入也将不胜感激。谢谢!

【问题讨论】:

  • 对于线性图,您可能应该这样做plt.plot([0,30], [0,30])
  • 这几乎是题外话,因为这里的技术问题有 OP 已经找到的简单答案。也许更适合 Data Science Stack Exchange?
  • 如果能获得更多关于数据集可能是什么样子的示例,那就太好了。它的措辞方式很模糊。
  • 很多 matplotlib 后端支持开箱即用的缩放。你用什么环境?绘图窗口对您来说是什么样的?

标签: python matplotlib seaborn


【解决方案1】:

有一些简单的方法可以实现你所建议的一切:

  1. 使用matplotlib.axes.Axes.set_aspect 强制缩放轴。
  2. 通过matplotlib.axes.Axes.axline 原点添加一条斜率为 1 的无限直线
  3. 将绘图设置为交互模式,以便进行平移和缩放。执行此操作的方法取决于您的环境,并且是 explained in the docs

最好将它们全部组合起来。

import matplotlib.pyplot as plt
from numpy import random

plt.ion()  # activates interactive mode in most environments
plt.scatter(random.random_sample(10), random.random_sample(10))
ax = plt.gca()
ax.axline((0, 0), slope=1)
ax.set_aspect('equal', adjustable='datalim')  # force equal aspect

【讨论】:

    【解决方案2】:

    绘制直线:

    plt.plot([0,30], [0,30])
    

    要将 x 和 y 轴缩放到相同的比例(请参阅 doc 了解 set_aspect):

    plt.xlim(0, 30)
    plt.ylim(0, 30)
    plt.gca().set_aspect('equal', adjustable='box')
    plt.draw()
    

    来自 set_aspect 的文档:

    Axes.set_aspect(aspect,adjustable=None,anchor=None,share=False)
    设置轴缩放的纵横比,即 y/x-scale
    aspect='equal':与 aspect=1 相同,即 x 和 y 的缩放比例相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 2020-01-18
      • 2019-05-09
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 2021-03-19
      相关资源
      最近更新 更多