如何获取flot中的x轴标签?
我正在使用 Flot 来创建图表。 这是我的代码 jsFiddle 代码
function drawSeriesHook(plot, canvascontext, series) {
var ctx = canvascontext,
plotOffset = plot.offset(),
labelText = 'VALUE', // customise this text, maybe to series.label
points = series.datapoints.points,
ps = series.datapoints.pointsize,
xaxis = series.xaxis,
yaxis = series.yaxis,
textWidth, textHeight, textX, textY;
// only draw label for top yellow series
if (series.color === '#F8C095') {
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
ctx.lineWidth = series.bars.lineWidth;
ctx.fillStyle = '#000'; // customise the colour here
for (var i = 0; i < points.length; i += ps) {
if (points[i] == null) continue;
textWidth = ctx.measureText(labelText).width; // measure how wide the label will be
textHeight = parseInt(ctx.font); // extract the font size from the context.font string
textX = xaxis.p2c(points[i] + series.bars.barWidth / 2) - textWidth / 2;
textY = yaxis.p2c(points[i + 1]) - textHeight / 2;
ctx.fillText(labelText, textX, textY); // draw the label
}
ctx.restore();
}
}
- 在我的drawseriesHook函数中,我需要获取像Data1这样的x轴标签, Data2,Data3,Data4
- 有没有办法在不使用series.label & 的情况下唯一标识最后一个数据项? series.color.目前我已经通过修改函数中的series.color来识别它
I am using Flot to create graphs.
This is my Code here jsFiddle code
function drawSeriesHook(plot, canvascontext, series) {
var ctx = canvascontext,
plotOffset = plot.offset(),
labelText = 'VALUE', // customise this text, maybe to series.label
points = series.datapoints.points,
ps = series.datapoints.pointsize,
xaxis = series.xaxis,
yaxis = series.yaxis,
textWidth, textHeight, textX, textY;
// only draw label for top yellow series
if (series.color === '#F8C095') {
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
ctx.lineWidth = series.bars.lineWidth;
ctx.fillStyle = '#000'; // customise the colour here
for (var i = 0; i < points.length; i += ps) {
if (points[i] == null) continue;
textWidth = ctx.measureText(labelText).width; // measure how wide the label will be
textHeight = parseInt(ctx.font); // extract the font size from the context.font string
textX = xaxis.p2c(points[i] + series.bars.barWidth / 2) - textWidth / 2;
textY = yaxis.p2c(points[i + 1]) - textHeight / 2;
ctx.fillText(labelText, textX, textY); // draw the label
}
ctx.restore();
}
}
- In My drawseriesHook function i need to get the x axis labels like Data1,Data2,Data3,Data4
- Is there any way to uniquely identify the last data item without using series.label & series.color.Currently i have identified it by modifying the series.color in the function
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1.) 好吧,我想你想为每个栏设置
labelText
。在 for 循环中添加以下行:另请参阅更新的示例。
2.) 您可以向
data
添加自己的值,例如标记最后一个:在您的钩子中,您可以检查标志:
另请参阅下一个 更新示例。
1.) Ok, I think you want to set
labelText
for each bar. Add the following line in the for-loop:Also see the updated example.
2.) You can add own values to
data
, e.g. to mark the last one:In your hook you can check the flag:
Also see the next updated example.