Flot - 是否可以有第三个 y 轴或隐藏数据集?

2024-01-09

我有一个图表显示一个人的比赛时间(如果您将下面的代码复制/粘贴到任何一个flot示例中,它应该可以工作)。我在 y1 轴上显示时间,在 y2 轴上显示每公里配速,因为它们都是 %H/%M/%S 的时间。但我还想在图表中显示每场比赛的距离。由于此数据集(距离)上的单位与 y 轴不同,因此通过 y 轴显示它没有意义。我想我可以将距离详细信息添加到 x 轴刻度字符串中,但这不允许我稍后在工具提示中重用这些数据。有没有人对我如何从工具提示访问数据集“距离”有任何想法,或者以某种方式将第三个 y 轴比例捏到图表上?

<h1>Times and Distances</h1>

<pre>
Event       Distance    Time        Pace Km
R1      4 Mile      00:23:14        
R2      5 Mile      00:28:27        
R3      5 Mile      00:29:08        
R4      4 Mile      00:21:16        
R5      5 KM        00:16:42        
R6      5 Mile      00:25:41    00:03:12 
R7      5 KM        00:16:03    00:03:13 
R8      5 Mile      00:28:13    00:03:30 
</pre>
<div id="placeholder" style="width:600px;height:300px;"></div>
<script id="source" language="javascript" type="text/javascript">
$(function () {
    var d1 = [ 
        {
            label: "Time",
            lines: {show: true, fill: false},
            points: {show: true, fill: false},
            data: [ [0,600000],[1,1200000],[2,1800000],[3,1800000],[4,2400000],[5,3600000],[6,4800000],[7,5200000] ]
        },
        {
            label: "Pace per Km",
            yaxis: 2,
            lines: {show: true, fill: false},
            points: {show: true, fill: false},
            data: [ [0,3000],[1,2800],[2,3000],[3,3000],[4,2500],[5,3000],[6,2500],[7,3000] ]
        }
                    //,
        //{
        //  label: "Distance",
        //  yaxis: 2,
        //  bars:   {show: true},
        //  data: [ [0,3],[1,2.8],[2,3],[3,3],[4,2.5],[5,3],[6,2.5],[7,3] ]
        //}
    ];

    $.plot($("#placeholder"),
             d1,
           { 
            xaxis: { 
                    ticks: [ [0,'R1'],[1,'R2'],[2,'R3'],[3,'R4'],[4,'R5'],[5,'R6'],[6,'R7'],[7,'R8'] ] 
            },
            yaxis:{
                    mode: "time",
                    min: 500000,
                    max: 6000000,
                    timeformat: "%H:%M:%S"
            },
            y2axis:{
                    mode: "time",
                    min: 2000,
                    max: 4000,
                    timeformat: "%M:%S"
            },
            selection: { mode: "xy" },
            grid: { hoverable: true, clickable: true }
        });

    var previousPoint = null;
    $("#placeholder").bind("plothover", function (event, pos, item) {
    $("#x").text(pos.x.toFixed(2));
    $("#y").text(pos.y.toFixed(2));

    if (item) {
    if (previousPoint != item.datapoint) {
    previousPoint = item.datapoint;

    $("#tooltip").remove();
    var x = item.datapoint[0].toFixed(2),
    y = item.datapoint[1].toFixed(2);

    showTooltip(item.pageX, item.pageY,
    item.series.label + " of " + x + " = " + y);
    }
    }
    else {
    $("#tooltip").remove();
    previousPoint = null; 
    }
    });

    function showTooltip(x, y, contents) {
    $('<div id="tooltip">' + contents + '</div>').css( {
    position: 'absolute',
    display: 'none',
    top: y + 5,
    left: x + 5,
    border: '1px solid #fdd',
    padding: '2px',
    'background-color': '#fee',
    opacity: 0.80
    }).appendTo("body").fadeIn(200);
    }
});
</script>

我很确定你对第三个 y 轴不走运。

在这种情况下,我通常做的就是使用一个全局数组,将 x 坐标映射到您想要在工具提示中显示的任何数据,所以想象一下:

var y3data = [3,2.8,3,3,2.5,...];//y-values from your Distance series

然后在你的plothover函数中调用showTooltip变成:

showTooltip(item.pageX, item.pageY,
    item.series.label + " of " + x + " = " + y + 
    ' and the race was '+y3data[x]+'km long');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flot - 是否可以有第三个 y 轴或隐藏数据集? 的相关文章

随机推荐

  • 获取轴上 numpy.argmax 元素的索引

    我有 N 维矩阵 其中包含具有 N 个参数的函数的值 每个参数都有离散数量的值 我需要在除一个参数之外的所有参数上最大化该函数 从而产生一个大小等于非最大化参数值的数量的一维向量 我还需要保存其他参数采用的值 为此 我想迭代应用numpy
  • 16 字节实数的 MPI_AllReduce 的奇怪结果

    编译器 gfortran 4 8 5 MPI 库 OpenMPI 1 7 2 预装 OpenSuSE 13 2 这个程序 use mpi implicit none real 16 x integer ierr irank type16 c
  • Java 8 中接口方法的隐式声明是什么?

    我正在读我的旧 SCJP 6 书 作者 Kathy Sierra Bert Bates 提到的 All the interface方法是隐含地 public and abstract默认情况下 interface方法一定不能是static
  • 如果 StringBuilder 或 StringBuffer 可以做 String 所做的事情,为什么还要有 String 类呢? [复制]

    这个问题在这里已经有答案了 我一直想知道为什么JAVA和C 有String 不可变和线程安全 类 如果有StringBuilder 可变且非线程安全 或StringBuffer 可变和线程安全 类 不是StringBuilder Strin
  • 如何查看origin/master 领先于master 的提交消息?

    当 git 通知我我的本地分支落后于 master 时 我如何告诉 git 打印出我落后的日志消息 例如 在下面的情况下 如何查看在 origin master 上我在 master 上没有的 2 个提交的日志消息 git status O
  • 如何在显示 UIMenu 之前修改它以支持动态操作

    iOS 14 添加了点击或长按 UIBarButtonItem 或 UIButton 时显示菜单的功能 如下所示 let menu UIMenu children UIAction title Action image nil action
  • T-SQL 将不同行中最大长度列的行分组(?)

    我正在尝试想出一种方法 根据基于行键的任何行中最长的字符串来组合表中的行 example CREATE TABLE test1 akey int not null text1 varchar 50 NULL text2 varchar 50
  • 使用 openshift rhc tail 命令

    如何跟踪 openshift 日志文件 我发出了以下命令 rhc tail myapp 它似乎显示第一个错误行 然后停止 但不退出 如果我按 ctrl C 它会询问是否停止批处理 如何显示最后几个错误并可以逐页浏览 有向下翻页 向上翻页快捷
  • selenium 将两个 xpath 测试合二为一

    我尝试结合检查两种情况 如果启动检查失败 我们会看到重试按钮 el WebDriverWait self driver 10 until EC element to be clickable By NAME Try again 或者启动检查
  • DELETE_ON_CLOSE 在 Linux 上关闭之前删除文件

    我使用 Java 7 nio API 有以下代码 import java io IOException import java io ObjectOutputStream import java io OutputStream import
  • Google App Engine 批量加载器转换的参考页面在哪里?

    从空数据存储中 我能够自动生成bulkloader yaml文件 它只包含python preamble 但是transformers部分是空的 python preamble import google appengine ext bul
  • 将数字向下舍入

    I have numeric就像这个 a lt 1 542045 我想将它们四舍五入 或四舍五入abs 到小数点后 2 位 signif a 3 会将其向下舍入并给出 1 54 作为结果 但对于本示例 我想要的结果是 1 55 任何想法 我
  • 钥匙串+临时分发

    首先 一些细节 我们正在开发一个 iOS 应用程序 目前使用 Swift Xcode 6 1 GM 2 进行开发 在临时分发应用程序时 我们在钥匙串访问方面遇到了一些令人困惑的问题 并且在追踪原因方面遇到了问题 所有配置文件都与我们应用程序
  • 无法打印字符串数组元素[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 每当我尝试运行该程序时 它都会返回一条错误消息 没有运算符 另请注意 该程序仅在getChoice 功能 include
  • 没有估计器的plot_confusion_matrix

    我正在尝试使用plot confusion matrix from sklearn metrics import confusion matrix y true 1 1 0 1 y pred 1 1 0 0 confusion matrix
  • 无需重新编译即可更改 CORBA 接口

    我想向现有服务器的 CORBA 接口添加一个方法 这需要重新编译所有客户端吗 我用的是TAO 不需要重新编译客户端 也不应该这样做 无论您使用什么 ORB 正如 Adam 所指出的 查找是通过操作名称完成的 直接文本比较 我已经使用我们基于
  • 为什么控制器内部存在的这个函数和属性没有被访问?

    app2 js function var app angular module panel app controller PanelController function this tab 1 this setTab function se
  • Python Flask SocketIO 在 @socketio 上下文之外广播

    我试图在外部值发生变化时发送广播 当值更改时 Camonitor 会调用回调 我想通知所有连接的客户端值已更改并且需要刷新 from flask import Flask from epics import caget caput camo
  • 通过 WSO2 API 管理器公开不安全的 url

    我有一个在 WSO2 的 API Manager Publisher 工具中设置的 API 当使用访问令牌正确调用时 所有调用都可以正常工作 但我有一个网址 我希望任何人都可以调用它 这是一个定制的 Swagger UI 页面 与 WSO2
  • Flot - 是否可以有第三个 y 轴或隐藏数据集?

    我有一个图表显示一个人的比赛时间 如果您将下面的代码复制 粘贴到任何一个flot示例中 它应该可以工作 我在 y1 轴上显示时间 在 y2 轴上显示每公里配速 因为它们都是 H M S 的时间 但我还想在图表中显示每场比赛的距离 由于此数据