Javascript jqplot在绘图上标记一个点
我有一个包含两条线(一条水平线和一条抛物线)的图形,我想显示交叉点的值,并用文本“MSY”标记它。我试图使用选项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]
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
}}],