当我处理图表中某个条形图中的点击时,我可以得到Y轴值,但是我想要的X轴得到月份,现在我得到一个奇怪的值。
$("#flot-dashboard-chart2").bind("plotclick", function (event, pos, item) {
if (item) {
var dataPoint = item.series.data[item.dataIndex];
// dataPoint[0] - Return a strange value, a want the month
// dataPoint[1] - Return the Y value (works fine)
}
});
我的图表
var options = {
xaxis: {
mode: "time",
tickSize: [1, "month"],
tickLength: 0,
axisLabel: "Date",
axisLabelUseCanvas: true,
axisLabelFontSizePixels: 12,
axisLabelFontFamily: 'Arial',
axisLabelPadding: 10,
color: "#838383",
timeformat: "%b/%y"
},
答案 0 :(得分:0)
如果没有提供数据和你得到的数据,我们只能猜测,所以这是我的猜测:
当您访问dataPoint [0]时,您可能会得到一个时间戳(自1970年1月1日以来的毫秒数,如下所示:1404999276000)。 在javascript中,您可以轻松地将时间戳转换为日期:
date = new Date(timestamp);
它返回如下内容:
Thu Jul 10 2014 15:34:36 GMT+0200 (Paris, Madrid (heure d’été))
然后,您可以使用getMonth()
提取月份date.getMonth() // return 6 (july, january is 0)
答案 1 :(得分:0)
我得到了它,具有以下功能。
/* HANDLE CLICK IN BAR */
$("#flot-dashboard-chart2").bind("plotclick", function (event, pos, item) {
if (item) {
var dataPoint = item.series.data[item.dataIndex];
var month = GetMonth(item);
}
});
/* GET THE MONTH IN X AXIS */
function GetMonth(item)
{
var content = "%x";
var xPattern = /%x\.{0,1}(\d{0,})/;
// change x from number to given label, if given
if (typeof item.series.xaxis.ticks !== 'undefined') {
var ticks = 'ticks';
var tickIndex = item.dataIndex + item.seriesIndex;
if (item.series.xaxis[ticks].length > tickIndex)
content = content.replace(xPattern, item.series.xaxis[ticks][tickIndex+1].label);
}
// Return Nov/14 for example
return content;
}