Javascript 如何使用anychart js以下拉值的形式在图表中显示数据?
我正在尝试使用anychart js制作折线图。此图表上显示的数据是api提供的数据,与nba球员统计数据有关。它是以JSON格式提供的。所以我想要的是根据我在下拉列表中选择的功能设置数据 例如,如果我在下拉列表中选择fga属性,它将显示带有fga作为数据的折线图。如果选择则fgm,它将删除当前折线图,并显示另一个以fgm为数据的折线图 以下是我对API的请求: 以下是网站: 所以我的问题是,当我这样做时,我为数组的每个元素创建了几个图表。我可以用所有这些数据制作一张图表 这是我的密码:Javascript 如何使用anychart js以下拉值的形式在图表中显示数据?,javascript,arrays,api,charts,anychart,Javascript,Arrays,Api,Charts,Anychart,我正在尝试使用anychart js制作折线图。此图表上显示的数据是api提供的数据,与nba球员统计数据有关。它是以JSON格式提供的。所以我想要的是根据我在下拉列表中选择的功能设置数据 例如,如果我在下拉列表中选择fga属性,它将显示带有fga作为数据的折线图。如果选择则fgm,它将删除当前折线图,并显示另一个以fgm为数据的折线图 以下是我对API的请求: 以下是网站: 所以我的问题是,当我这样做时,我为数组的每个元素创建了几个图表。我可以用所有这些数据制作一张图表 这是我的密码: var
var vm = new Vue({
el:'#app',
data : {
choice : "",
stat : []
},
methods: {
statSelect : function(event){
return axios.get("https://www.balldontlie.io/api/v1/stats?seasons[]=2019&player_ids[]=237&per_page=100")
.then(response => {
var tab = response.data.data.map((item) => {
var date = new Date(item.game.date);
var dateN = date.toLocaleString('en-US',
{year : 'numeric', month : 'numeric', day: 'numeric'});
if (event.target.value == "fga") {
this.stat.push([dateN, item.fga]);
var chart = anychart.line();
var serie = chart.line(this.stat);
chart.yScale().minimum(0);
chart.container("container");
chart.draw();
console.log(this.stat);
}
if (event.target.value == "fta") {
stat = [dateN, item.fta];
console.log(stat);
}
else {
stat = [dateN, item.ftm];
console.log(stat); }
});
return stat;
});
}
}})
结果如下:
问候
YT如果我正确理解了您要做的事情,下面是一个示例,说明如何使用vanilla javascript来完成
window.addEventListener('DOMContentLoaded',function(){
//获取数据
常量url=”https://www.balldontlie.io/api/v1/stats?seasons[]=2019和玩家ID[]=237和每页=100”;
const dataPromise=axios.get(url)
.then(response=>response.data.data)
.catch(原因=>alert('GET failed.+reason));
//初始图
const chart=anychart.line();
chart.defaultSeriesType('line');
//保持图表更新以匹配下拉列表
const selectElem=document.querySelector('select');
选择elem.addEventListener('change',event=>{
showChartFor(事件、目标、值);
});
showChartFor(选择元素值);
功能显示图表(键){
然后(数据=>{
常量系列=data.map(项=>{
const date=新日期(item.game.date);
const dateN=date.tolocalString('en-US'{
年份:'数字',
月份:'数字',
日期:“数字”
});
返回[日期,项目[键];
});
chart.removeAllSeries();
图表.添加系列(系列);
图表.集装箱(“集装箱”);
chart.draw();
});
}
});代码>
JS-Bin
fga
自由贸易协定
ftm
要将新数据应用于序列,无需重新创建图表甚至序列。您只需将新数据应用于现有系列:
// create series
var series = chart.line(initialData);
// apply new data
series.data(newData);
因此,您希望有一个图表,根据下拉列表中选择的内容显示不同的数据,问题是您得到了多个图表?查看和了解如何更改图表中显示的数据。感谢您的回答。然而,我实际上在使用viewjs,我想知道如何用这项技术实现它?