【问题标题】:formula to calculate axis values计算轴值的公式
【发布时间】:2011-01-06 12:36:44
【问题描述】:

假设我有一个包含 5 个值的简单折线图(a = 155,b = 200,c = 250,d = 300,e 0 345)

我需要一种方法来计算 Y 轴上的值,以使值看起来不错。我也想看看小步骤。

如果我使用一个简单的公式,我会这样做:

最大值 - 最小值 = 差值 345 - 155 = 190

5 个步骤: 每步 190 / 4 = 47.50

Thet 将导致 Y 轴的这些值:

Y0 = 155

Y1 = 203

Y2 = 250

Y3 = 298

Y4 = 345

我真正想要的是以下值:

Y0 = 150

Y1 = 200

Y2 = 250

Y3 = 300

Y4 = 350

但是我该如何计算呢?

在计算之前我不知道值的大小,它也可能是数千或数十。

我希望我能解释清楚。英语不是我的主要语言,所以如果有不清楚的地方请询问。

【问题讨论】:

  • 这个问题是关于生成值以显示在轴旁边吗?

标签: math


【解决方案1】:

如果我理解得很好,你说的是把你的点拟合成一条线。这是一个名为linear regression 的重要问题(但仍然很简单)。用于解决它的传统算法是least squares 算法。我很确定,在所有语言中,您都可以找到实现它的库。

[编辑] Wolfram alpha 可以完成这项工作:
http://www.wolframalpha.com/input/?i=linear+fit+155+200+250+300+345

【讨论】:

  • 是的,看起来像这样。而且我想我也可以找到一些 C# 示例。
  • @Thomas - 我必须说你的问题的意图令人困惑。感谢@Antonin 得到它!
【解决方案2】:

四舍五入是这里的关键。您可以将极值四舍五入到第 1 位、第 2 位等,并使用四舍五入的值作为轴限制。

【讨论】:

    【解决方案3】:

    一种方法是编写一个简单的“硬币四舍五入”算法。这是一种将数字四舍五入的算法(例如,您建议的步骤),因此它以 1,2 或 5 开头。例如,47.50 将四舍五入为 50。

    【讨论】:

    • 这适用于我给出的示例。但是,如果值变为 145、200、250、300、345,则差值正好是 200,步长为 50。如果我想将轴从 100 开始,那么我不会在 5 步内达到 350。所以这是问题的第二部分。
    • @Thomas:我不知道你在说什么。
    猜你喜欢
    • 2016-08-28
    • 2023-03-19
    • 2011-12-05
    • 2021-11-13
    • 1970-01-01
    • 2021-07-13
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多