android 折线图 点击事件,javascript – 如何使用Chart.js将点击事件添加到我的折线图...

我试图使用

Chart.js将点击事件添加到我的折线图中.我已经启用了我的工具提示,以显示我的折线图中的信息,但我也想添加一个点击方式,让我知道用户点击x轴.现在我只想弹出一个警报,给我在用户点击的x轴上的值.

研究:

我看过documentation of Chart.js,我发现这个方法:.getPointsAtEvent(event)

Calling getPointsAtEvent(event) on your Chart instance passing an

argument of an event, or jQuery event, will return the point elements

that are at that the same position of that event.

canvas.onclick = function(evt){

var activePoints = myLineChart.getPointsAtEvent(evt);

// => activePoints is an array of points on the canvas that are at the same position as the click event. };

我不知道如何使用或在哪里将函数放在我的代码中.如果有人可以帮助我找出可以添加到我的代码的地方,那将是非常感谢!

我的代码:(在javascript中)

//NOTE: the div 'roomForChart' has been already declared as

//creating html code inside of javascript to display the canvas used for the graph

htmlForGraph = "";

document.getElementById('roomForChart').innerHTML += htmlForGraph;

//NOW TO CREATE DATA

//the data for my line chart

var data = {

labels: ["Aug 1", "Aug 2", "Aug 3","Aug 4","Aug 5"], //the x axis

datasets: [

{ //my red line

label: "Usage Plan",

fillColor: "rgba(255,255,255,0.2)", //adds the color below the line

strokeColor: "rgba(224,0,0,1)",//creates the line

pointColor: "rgba(244,0,0,1)",

pointStrokeColor: "#fff",

pointHighlightFill: "#fff",

pointHighlightStroke: "rgba(220,220,220,1)",

data: [1024, 1024, 1024, 1024, 1024]

},

{ //my green line

label: "Overall Usage",

fillColor: "rgba(48,197,83,0.2)",

strokeColor: "rgba(48,197,83,1)",

pointColor: "rgba(48,197,83,1)",

pointStrokeColor: "#fff",

pointHighlightFill: "#fff",

pointHighlightStroke: "rgba(48,197,83,1)",

data: [15, 25, 45, 45, 1500]

},

{ //my blue line

label: "Daily Usage",

fillColor: "rgba(151,187,205,0.2)",

strokeColor: "rgba(151,187,205,1)",

pointColor: "rgba(151,187,205,1)",

pointStrokeColor: "#fff",

pointHighlightFill: "#fff",

pointHighlightStroke: "rgba(151,187,205,1)",

data: [15, 10, 20, 0, 5]

}

] //ending the datasets

}; //ending data

//creating a variable for my chart

var ctx = document.getElementById("myChart").getContext("2d");

//code to create a maximum y value on the chart

var maxUsage = 1024;

var maxSteps = 5;

var myLineChart = new Chart(ctx).Line(data, {

pointDot: false,

scaleOverride: true,

scaleSteps: maxSteps,

scaleStepWidth: Math.ceil(maxUsage / maxSteps),

scaleStartValue: 0

});

//what I have tried but it doesn't show an alert message

ctx.onclick = function(evt){

var activePoints = myLineChart.getPointsAtEvent(evt);

// => activePoints is an array of points on the canvas that are at the same position as the click event.

alert("See me?");

};

对于那些在这里很难看到图表的人,你去:

希望我提供足够的信息来获得一些帮助.如果我需要自己解释,请让我知道.先谢谢你!!! 🙂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为你介绍如何使用Plotly.js创建交互式折线图。 首先,你需要在HTML文件中引入Plotly.js库,可以使用CDN链接或下载到本地。 然后,在JavaScript文件中创建一个数据对象,包含x轴和y轴的数据以及其他相关信息,例如线条颜色、线条宽度、标记大小等。 接下来,使用Plotly.js的`plot`函数将数据对象绘制成折线图,并指定要显示的容器元素的ID。 最后,你可以使用Plotly.js的各种交互功能,例如缩放、平移、悬停提示等,为你的折线图添加更多的交互性和可视化效果。 下面是一个简单的例子,演示如何使用Plotly.js创建交互式折线图: ```html <!DOCTYPE html> <html> <head> <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> </head> <body> <div id="myPlot"></div> <script> var data = { x: [1, 2, 3, 4, 5], y: [1, 4, 3, 2, 5], mode: 'lines+markers', line: { color: 'blue', width: 2 }, marker: { size: 10 } }; var layout = { title: 'My Interactive Line Chart', xaxis: { title: 'X-axis' }, yaxis: { title: 'Y-axis' } }; Plotly.plot('myPlot', [data], layout); </script> </body> </html> ``` 在这个例子中,我们创建了一个简单的数据对象,包含5个点的x轴和y轴值,然后指定了线条和标记的样式。接下来,我们创建了一个布局对象,包含标题和轴标签等信息。最后,使用`Plotly.plot`函数将数据对象和布局对象传递给Plotly.js,并指定要显示的容器元素的ID。运行这个例子,你可以看到一个基本的交互式折线图。 你可以根据自己的需求调整数据对象和布局对象的属性,以及使用Plotly.js的各种函数和方法来添加更多的交互和可视化效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值