Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqplot在绘图上标记一个点_Javascript_Jqplot - Fatal编程技术网

Javascript jqplot在绘图上标记一个点

Javascript jqplot在绘图上标记一个点,javascript,jqplot,Javascript,Jqplot,我有一个包含两条线(一条水平线和一条抛物线)的图形,我想显示交叉点的值,并用文本“MSY”标记它。我试图使用选项pointLabels,但似乎没有找到正确的方法。谁能给我一些提示吗?这是问题的症结所在 jquery代码: $(document).ready(function() { $.jqplot.config.enablePlugins = true; var s1 = [[0.0, 0.0], [1.0, 0.036], [2.0, 0.064], [3.0, 0.084]

我有一个包含两条线(一条水平线和一条抛物线)的图形,我想显示交叉点的值,并用文本“MSY”标记它。我试图使用选项
pointLabels
,但似乎没有找到正确的方法。谁能给我一些提示吗?这是问题的症结所在

jquery代码:

$(document).ready(function() {
    $.jqplot.config.enablePlugins = true;
    var s1 = [[0.0, 0.0], [1.0, 0.036], [2.0, 0.064], [3.0, 0.084], [4.0, 0.096], [5.0, 0.1], [6.0, 0.096], [7.0, 0.084], [8.0, 0.063], [9.0, 0.036], [10.0, 0.0]];

    $.jqplot('chart1', [s1], {
        seriesDefaults: {
            showMarker: false,
            pointLabels: {
                show: false
            }
        },
        axes: {
            xaxis: {
                label: 'X label',
                pad: 0
            },
            yaxis: {
                label: 'Y label',
                labelRenderer: $.jqplot.CanvasAxisLabelRenderer
            }
        },
        legend: {
            show: true,
            location: 'ne',
            placement: 'inside',
            fontSize: '11px'
        },
        canvasOverlay: {
            show: true,
            objects: [
                {
                horizontalLine: {
                    y: 0.1,
                    color: 'rgb(100, 55, 124)',
                    show: true,
                }}
            ]
        },
        pointLabels: {
            show: true,
            labels: [[5, 0.10]],
            hideZeros: true
        }
    })
})​

假设抛物线是均匀的,没有直线解。我只是做了一些假设来计算抛物线的顶点。这只是一个近似值,并准备了一个数组,可以馈送到系列标签

var k = Math.round(s1.length / 2); //Assuming your Parabola to be uniform
    var l = [];
    var i=0;
    while(i<(k-1))
    {
    l.push("");
        i++;
    }
    l.push('MSY');
我已经在小提琴上做了必要的修改和更新。
我建议你找到一个小插件或构建一个小脚本,它将为你提供抛物线的尖端或顶点,并使用上面的方法。这会解决你的问题。

谢谢你帮我解决这个问题。有一个问题,有没有一种方法可以在不循环“k”步的情况下运行这个推送函数“l.push('MSY')”?实际上,如果您查看这些k步,我实际上只向数组中添加空白数据,以便“MSY”的位置位于中间。请参阅,因为图表中有十个值。我认为中心点为k=10/2,并将其四舍五入。结果是6。然后形成l数组,该数组应为[“”、“”、“”、“”、“”、“”、“”、“”和“MSY”]。这将被馈送至该系列。因此,必须以这种方式进行迭代。希望这是清楚的。但是我建议你得到一些公式,看看这个图是否是动态的。。在不久的将来。目前,这不会造成问题。:)谢谢实际上,在这种情况下,我的抛物线总是一致的。所以我想知道有没有可能直接使用插入“MSY”来插入位置K处的I向量?你必须向右推一些元素:)就这样吧。
是否导致任何问题?@tao.hong我已退房。这是填充数组的唯一方法。
 series: [
            {
            pointLabels: {
                show: true,
                labels: l
            }}],