Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何过滤json并获得在js中创建线图的平均值?_Javascript_Json_Filter_Plotly_Average - Fatal编程技术网

Javascript 如何过滤json并获得在js中创建线图的平均值?

Javascript 如何过滤json并获得在js中创建线图的平均值?,javascript,json,filter,plotly,average,Javascript,Json,Filter,Plotly,Average,我有json格式的数据,所以我想用plotly js绘图,我需要的是按学期创建一个不同州的绘图,所以我需要过滤每个州(例如加利福尼亚州),然后我需要得到每个学期的平均值并最终绘图 到目前为止,我已经有了这段代码,但我不知道如何过滤js中的新im // Trace1 var trace1 = { x: data.map(row => row.date), y: data.map(row => row.snap_biannual_chan), text: data.map(

我有json格式的数据,所以我想用plotly js绘图,我需要的是按学期创建一个不同州的绘图,所以我需要过滤每个州(例如加利福尼亚州),然后我需要得到每个学期的平均值并最终绘图

到目前为止,我已经有了这段代码,但我不知道如何过滤js中的新im

// Trace1 
var trace1 = {
  x: data.map(row => row.date),
  y: data.map(row => row.snap_biannual_chan),
  text: data.map(row => row.state_name),
  name: "snap_biannual_chan",
  type: "line"
};

// Combining both traces
var data = [trace1];

// Apply the group barmode to the layout
var layout = {
  title: "Practice",
  xaxis: {
    categoryorder: "array",
  }
};

// Render the plot to the div tag with id "plot"
Plotly.newPlot("plot", data, layout)
以下是json示例:

“县州id”:“06001”, “pop_hispan_道具”:“.117647187212034”, “pop_un_st”:3059000, “州名”:“加利福尼亚州”, “县名称”:“阿拉米达县”, “pop_un_co”:109000, “州id”:“06”, “县id”:“001”, “波普公司”:1605217, “波普街”:38654206, “州”:“CA”, “学期”:“0118”, “snap_受益人”:102034, “snap_Bianual_chan”:-2.0298037374083036, “sem”:“1月18日”, “pop_un_co_per”:6.790359185082141, “流行音乐”:7.91375717322776, “年份”:2018年, “月”:1,
“日期”:“2018年1月”

您可以使用数组
filter()
reduce()
方法来计算平均值,而无需微观管理一系列循环和变量。下面是一个例子:

const数据=[
{州id:“01”,snap_半年一次,陈:5.5},
{州id:“01”,snap_半年一次,陈:3},
{州id:“02”,snap_每半年_chan:5}
];
const state01=data.filter(x=>x.state_id==“01”);
const meanState01=state01.reduce((附件,项目)=>{
acc.sum+=每半年一次的项目快照;
acc.mean=acc.sum/state01.length
返回acc;
},{sum:0,mean:0});
console.log(meanState01);

console.log(“平均值:”,meanState01.mean)问题是什么?你有错误吗?