图(图表)算法

2024-02-18

有人有计算轴最小值和最大值的不错的算法吗?

当为给定的一组数据项创建图表时,我希望能够给出算法:

  • 集合中的最大值 (y)
  • 集合中的最小值 (y)
  • 轴上显示的刻度线数量
  • 一个可选值must显示为勾号(例如,显示 +ve 和 -ve 值时为零)

该算法应该返回

  • 最大轴值
  • 最小轴值(尽管可以从最大值、间隔大小和刻度数推断)
  • 间隔大小

刻度线应该有规律的间隔,并且应该具有“合理”的大小(例如1、3、5,甚至可能是2.5,但不能再有更多的数字)。

可选值的存在会扭曲此值,但如果没有该值,最大的项目应出现在顶部两个刻度线之间,底部两个刻度线之间的最小值应出现。

这是一个与语言无关的问题,但如果有 C#/.NET 库,那就太棒了;)


好的,这是我为我们的一个应用程序想到的。请注意,它不处理您提到的“可选值”场景,因为我们的可选值始终为 0,但您修改起来应该不难。

数据不断添加到该系列中,因此我们只需通过检查添加的每个数据点来保持 y 值的范围是最新的;这是非常便宜且易于跟踪的。相等的最小值和最大值是特殊情况:间距 0 表示不应绘制任何标记。

这个解决方案与安德鲁上面的建议没有什么不同,只是它以一种稍微笨拙的方式处理指数乘数的一些任意分数。

最后,这个示例是用 C# 编写的。希望能帮助到你。

    private float GetYMarkerSpacing()
    {
        YValueRange range   = m_ScrollableCanvas.
                    TimelineCanvas.DataModel.CurrentYRange;
        if ( range.RealMinimum == range.RealMaximum )
        {
            return 0;
        }

        float   absolute    = Math.Max(
                    Math.Abs( range.RealMinimum ),
                    Math.Abs( range.RealMaximum ) ),
            spacing     = 0;
        for ( int power = 0; power < 39; ++power )
        {
            float   temp    = ( float ) Math.Pow( 10, power );
            if ( temp <= absolute )
            {
                spacing = temp;
            }
            else if ( temp / 2 <= absolute )
            {
                spacing = temp / 2;
                break;
            }
            else if ( temp / 2.5 <= absolute )
            {
                spacing = temp / 2.5F;
                break;
            }
            else if ( temp / 4 <= absolute )
            {
                spacing = temp / 4;
                break;
            }
            else if ( temp / 5 <= absolute )
            {
                spacing = temp / 5;
                break;
            }
            else
            {
                break;
            }
        }

        return spacing;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图(图表)算法 的相关文章

  • 在树结构的 Big-O 表示法中:为什么有些来源引用 O(logN),有些来源引用 O(h)?

    在研究遍历二叉搜索树的任何算法的复杂性时 我看到两种不同的方式来表达同一件事 版本 1 最坏情况下的遍历算法对树的每个高度进行一次比较 因此复杂度是O h 版本 2 最坏情况下的遍历算法对树的每个高度进行一次比较 因此复杂度是O logN
  • 连接红黑树

    OCaml 标准库有一个很棒的Set使用非常有效的分而治之算法来计算的实现union两套 我相信它会从一组中获取整个子树 而不仅仅是单个元素 并将它们插入到另一组中 并在必要时重新平衡 我想知道这是否需要 OCaml 使用的 AVL 树中保
  • 如何在 WinRT XAML Toolkit 折线图中设置轴边距?

    Answer 最后我用这个解决了我的答案 LineSeries MyChart Series 0 IndependentAxis new LinearAxis Minimum 1 Maximum 5 Orientation AxisOrie
  • 覆盖二维平面上给定点的最小圆

    问题 覆盖 2D 平面上给定 N 个点的圆的最小可能直径是多少 解决这个问题最有效的算法是什么 它是如何工作的 这是最小圆问题 http en wikipedia org wiki Smallest circle problem 请参阅参考
  • 用于查找最近邻居的空间划分算法如何工作?

    为了找到最近的邻居 空间分区 http en wikipedia org wiki Nearest neighbor search Space partitioning是算法之一 它是如何工作的 假设我有一组 2D 点 x 和 y 坐标 并
  • Primefaces 中动态生成条形图

    我正在使用 Primefaces 4 0 我需要根据查询结果的数量生成条形图 条形图的标题和颜色也应该能够为所有使用查询结果的人动态设置 条形图示例如下
  • 颜色变换器功能上的堆栈溢出错误

    我有两种颜色 红色 和 鲑鱼色 我需要动态创建面板以及面板背景颜色 这些颜色必须介于两种颜色之间 红色 public Color x y protected void Page Load object sender EventArgs e
  • ChartRangeFilter 作为谷歌时间轴图表的缩放功能,可使用数据视图从专用谷歌电子表格中读取数据

    我的目标是整合Whitehat 提供的这种缩放功能 https stackoverflow com questions 49306638 google timeline visualization dont change series ro
  • 数组所有可能的组合

    我有一个字符串数组 ted williams golden voice radio 我希望这些关键字的所有可能组合采用以下形式 ted williams golden voice radio ted williams ted golden
  • 大 ר 符号到底代表什么?

    我真的很困惑大 O 大 Omega 和大 Theta 表示法之间的区别 我知道大 O 是上限 大 Omega 是下限 但是大 theta 到底代表什么 我读过这意味着紧束缚 但是 这是什么意思 首先我们来了解一下什么是大O 大Theta和大
  • 用于在链表中查找结点的生产代码

    我在一次采访中被问到这个问题 我被要求编写代码 用于在 O 1 空间和线性时间的生产环境中在链表 其形式为 Y 形式 双臂不一定相等 中查找结点 我想出了这个解决方案 我以前在某处见过 1 Measure lengths of both l
  • 从 X、Y、Z 数据、Excel 或其他工具进行 3D 绘图

    我的数据看起来像这样 1000 13 75 2 1000 21 79 21 1000 29 80 02 5000 29 87 9 5000 37 88 54 5000 45 88 56 10000 29 90 11 10000 37 90
  • while循环的时间复杂度是多少?

    我正在尝试找出 while 循环的时间复杂度 但我不知道从哪里开始 我了解如何找到 for 循环的复杂性类别 但是当涉及到 while 循环时 我完全迷失了 关于从哪里开始有什么建议 提示吗 这是一个问题的示例 x 0 A n some a
  • 如何以最低的价格优化购物车?

    我有一个我想买的物品清单 这些商品由不同的商店提供 价格也不同 商店有单独的送货费用 我正在寻找一种最佳的购物策略 以及支持它的java库 以最低的总价购买所有商品 Example 商品 1 在 Shop1 的售价为 100 美元 在 Sh
  • 使用递归返回嵌套列表中第二小的数字

    我必须归还第二小的使用递归的 python 列表中的数字 以及no loops 我所做的是创建一个辅助函数 它返回列表中 最小 第二小的 值的元组 然后我只取tuple 1 in my second smallest func def s
  • 如何实现n个元素的查找和插入操作的动态二分查找

    这个想法是使用多个数组 每个长度为 2 k 根据 n 的二进制表示来存储 n 个元素 每个数组都是排序的 不同的数组没有以任何方式排序 在上述数据结构中 SEARCH是通过对每个数组进行一系列二分查找来进行的 INSERT 是通过一系列相同
  • 图算法:邻接图的可达性

    我有一个依赖图 我将其表示为Map
  • Google 饼图未显示所有数据行

    我正在尝试绘制人口与国家名称的关系图 我发现 Google 可视化库仅渲染前几个 实际上数字似乎是随机的 具体取决于我使用的数据 有时添加 其他 条目 但它没有t 实际上具有其余条目的值 Example 1 With all countri
  • 检测 JSON 数组中没有重复项的最快正确方法是什么?

    我需要检查数组中的所有项目是否都是唯一的serde json Value 由于该类型没有实现Hash我想出了以下解决方案 use serde json json Value use std collections HashSet fn is
  • 最小硬币找零问题——回溯

    我正在尝试用最少数量的硬币解决硬币找零问题 采用回溯法 我实际上已经完成了它 但我想添加一些选项 按其单位打印硬币数量 而不仅仅是总数 这是我下面的Python代码 def minimum coins coin list change mi

随机推荐

  • 如何在 WinForms ListBox 上设置多个选定项

    我有一个处于多重选择模式的 System Windows Forms ListBox 和一组我想要选择的项目 我怎么做 Test public void SetListBox var listBox new ListBox var item
  • 旧 iphone 3g 上的 HTTPS 请求

    其他任何人在旧 iPhone 上获取 https 请求时遇到问题 从连接确实失败并出现错误 错误消息如下 连接错误 错误域 NSURLErrorDomain 代码 1202 此服务器的证书无效 您可能正在连接到冒充 www ourwesbi
  • 在 REST/WCF 服务中将数据集从 LINQ 返回到 SQL

    我有一个 WCF REST Web 服务 正在考虑使用 Linq to SQL 返回数据库信息 对表进行基本查询并返回行非常容易 例如 WebGet UriTemplate public List
  • 格式为 mm/dd/yyyy 但采用本地格式的最佳方式是什么?

    Excel 似乎没有这个功能 除非我错过了 但我们对此有需求 由于我们尝试匹配 Excel 的单元格格式语法 因此我想以一种有意义的方式添加它 那么 关于如何指定您想要在本地布局中格式化的短 中 长日期 时间 日期时间有什么建议吗 换句话说
  • 返回我的时间线中的所有推文

    我希望返回我在时间线上发布的所有推文 我正在使用Linq 到 Twitter https linqtotwitter codeplex com wikipage title Querying 20the 20User 20Timeline图
  • 将 C/C++ 代码从 Linux 移植到 Windows 的最佳环境

    我想让我的一个大项目可以在 Windows 平台上构建 该项目本身是用 C C 编写的 遵循 POSIX 标准 具有一些库依赖项 例如 libxml2 libcurl 等 我更像是一名 Linux 开发人员而不是 Windows 开发人员
  • 升级到 Azure SDK 2.6 后无法在 Windows 通用应用程序中加载共享“项目”

    我刚刚安装了2015 年 4 月发布 Azure SDK http azure microsoft com en gb downloads archive net downloads 它是 2 6 版本 之前我使用的是 2 5 版本 现在我
  • 将整个数据库的空字符串更新为 NULL

    我正在执行一些数据库清理 并注意到有很多列在各个列中同时具有空字符串和 NULL 值 是否可以编写一条 SQL 语句来将数据库中每个表的每一列的空字符串更新为 NULL 除了不允许 NULL 的列之外 我看过information sche
  • 仅在我为 GoogleCredential 对象设置了 setServiceAccountUser() 之后才出现 NullPointerException (Grails/Java)

    我收到一个NullPointerException当我尝试时 细节很少setServiceAccountUser ACCOUNT TO IMPERSONATE on my GoogleCredential 构建一个 Google 任务服务对
  • 如何从 Action Script 3.0 获知 Flash Player 版本

    有没有办法知道使用 Action Script 3 0 运行 SWF 文件的计算机上安装的 Flash 播放器版本 如果您在 IDE 中编程 则以下内容将为您提供版本 trace Capabilities version 如果您正在构建自定
  • Python ctypes - 接受结构的 dll 函数崩溃

    我必须在 ms windows xp 下访问 POS 终端 我正在使用Python 2 7 我加载的 DLL 中用于付款的关键函数接受两个指向结构的指针 但它崩溃并返回 1 通信错误 但没有进一步的消息 请注意 当调用支付函数时 并非 PO
  • 在 C++ 中, std::multiset 是否保持稳定的排序顺序?

    假设我有两个项目 a 和 b 它们比较相同 所以 a 我检查了一些参考资料 但找不到答案 我很想认为没有任何保证 并且取决于每个特定的实现 Thanks 这个线程 https web archive org web 201305091636
  • 自定义安装处理程序的 Eclipse p2 替代方案

    在 p2 之前 人们可以编写一个自定义安装处理程序 该处理程序具有在安装过程中执行任何 自定义 任务的功能 我发现 p2 不再支持自定义安装处理程序 我不断听说 自定义接触点 正在取代它 但是我找不到任何具体的示例 文档 谁能告诉我如何使用
  • 如何在预发布测试中从 TestFlight 应用程序检索崩溃日志

    我一直在尝试获取通过 iTunes Connect TestFlight 分发的应用程序的崩溃报告 但无法找到它们 我找到了这个线程 https stackoverflow com questions 29408003 test fligh
  • 如何在 Telegram 中应答回调查询后发送消息?

    我正在尝试用 PHP 开发一个 Telegram 机器人 但当用户按下内联按钮时 我无法让我的机器人回答用户 有人可以帮我发消息吗 sendMessage方法 调用后answerCallback method 这是我最后的试用代码 if c
  • 在 spritekit 中沿着 UIBezierPath 绘制节点

    我目前正在 spritekit 中开发一款游戏 其中有游戏关卡地图 我正在使用 UIBezierPath 作为我希望关卡节点遵循的路径 我遇到的唯一问题是尝试沿路径绘制它们 并且想知道如何将它们添加到场景中 以便将它们添加到路径中每一个都与
  • 如何修复:使用 nginx 反向代理时收到 RST_STREAM,错误代码为 2

    我目前正在树莓派上使用dialogflow api 使用 grpc 调用 StreamingDetectIntent 方法时一切正常 我必须在我的产品上使用多个 api 因此 我尝试在它们前面放置一个反向代理 这样我就只能调用一个地址 我正
  • 测试监听 webhook 的 Laravel 路由

    似乎我在这里遗漏了一些东西 但我正在努力为集成 SendOwl webhook 的 Laravel 实现测试 这是我正在使用的文档 https help sendowl com help using web hooks https help
  • 分发java应用程序

    我最近开发了一些java应用程序 我希望其他人可以在他们的机器上运行 我做了一些研究 现在知道要分发 java 代码 您需要创建 jar 文件 好吧 我这样做了 但是当我分发这些文件时 它在某些计算机上运行 但在其他计算机上它返回一个错误
  • 图(图表)算法

    有人有计算轴最小值和最大值的不错的算法吗 当为给定的一组数据项创建图表时 我希望能够给出算法 集合中的最大值 y 集合中的最小值 y 轴上显示的刻度线数量 一个可选值must显示为勾号 例如 显示 ve 和 ve 值时为零 该算法应该返回