首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带频率的Plotly.js图直方图

带频率的Plotly.js图直方图
EN

Stack Overflow用户
提问于 2017-08-17 10:25:46
回答 1查看 1.9K关注 0票数 1

如何使用Plotly.js绘制频率直方图?

Plotly.js提供了用一组值绘制直方图而不是用频率值绘制直方图的API。

您可以在这里找到更多关于实际直方图的信息- https://plot.ly/javascript/histograms/

这里有一个例子:

如果样本集是{ 2,3,4,5,2,2,2,3,5 }。实际上是这样画的- https://codepen.io/sgsvenkatesh/pen/eEyyMJ

代码语言:javascript
复制
var x = [2, 3, 4, 5, 2, 2, 2, 3, 5];

var trace = {
    x: x,
    type: 'histogram',
  };
var data = [trace];
Plotly.newPlot('myDiv', data);

但这是我掌握的数据

代码语言:javascript
复制
x = [2, 3, 4, 5];
y = [4, 2, 1, 1];

这表示值0-2重复4次,2-3重复2次,以此类推。

如何使用Plotly.js绘制此图?

EN

回答 1

Stack Overflow用户

发布于 2017-08-17 16:36:08

检查这种表示方式。

代码语言:javascript
复制
x = [2, 3, 4, 5];
y = [4, 2, 1, 1];

traces = [];
for (var i = 0; i <= x.length - 1; i++) {
    var yarray = new Array(y[i]).fill(y[i]);
    var trace = {};
    if (i === 0) {
        trace = {
            x: yarray,
            type: 'histogram',
            name: 0 + " to " + x[i]
        };
    } else if (i === x.length - 1) {
        trace = {
            x: yarray,
            type: 'histogram',
            name: x[i] + " and above"
        };
    } else {
        trace = {
            x: yarray,
            type: 'histogram',
            name: x[i - 1] + " to " + x[i]
        };
    }
    traces.push(trace);
}


var data = traces;
var layout = {barmode: "group"}; // there are three modes that can be set, "overlay", "stack", "group"
Plotly.newPlot('myDiv', data, layout);
代码语言:javascript
复制
 <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
 <div id="myDiv"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45732601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档