Javascript 使用plotly创建条形图,其中数据为分类数组

Javascript 使用plotly创建条形图,其中数据为分类数组,javascript,plotly,Javascript,Plotly,我对javascript完全是个新手,在创建基于分类数组的数据的条形图时遇到了一些问题 有人能帮我指出我是如何用plotly创建条形图的吗。 主要问题是为我创建x和y数据数组 我的数据如下所示: tableData={} column=“性别” 数据=[‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男

我对javascript完全是个新手,在创建基于分类数组的数据的条形图时遇到了一些问题

有人能帮我指出我是如何用plotly创建条形图的吗。 主要问题是为我创建x和y数据数组

我的数据如下所示:

tableData={}
column=“性别”
数据=[‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、
console.log(数据)
tableData={}
column=“性别”
数据=[‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、‘男性’、‘女性’、‘男性’、‘男性’、‘男性’、‘男性’、
tableData[列]=数据
风险值数据=[
{
x:???
y:???
类型:'bar'
}
];

Plotly.newPlot(“测试”,数据)这实际上不是一个关于Plotly的问题,而是一个关于计算值在JavaScript数组中出现的频率的问题。实现这一点有多种方法,我最喜欢的方法是使用
reduce()

这将创建一个对象(tableData),其中数组(data)的所有唯一字符串显示为键,其频率显示为值,即

{ male: 31, female: 12 }
将其与您的代码结合起来,您将得到:

let数据=[‘男’、‘女’、‘男’、‘男’、‘男’、‘男’、‘男’、‘男’、‘女’、‘男’、‘男’、‘女’、‘男’、‘男’、‘男’、‘男’、‘女’、‘男’、‘男’、‘男’、‘女’、‘男’、‘男’、‘女’、‘男’、‘男’、‘男’、‘男’、‘女’、‘男’、‘男’、‘男’、‘男’、‘男’、‘男’、‘男’、‘男’、‘女’、‘男’、‘男’、‘男’、‘男’、‘男’、‘男’
设tableData=data.reduce(函数(obj,val){
对象[val]=++obj[val]| 1;
返回obj;
}, {});
设plotData=[
{
x:对象键(tableData),
y:对象值(tableData),
类型:'bar'
}
];
Plotly.newPlot('test',plotData);

{ male: 31, female: 12 }