首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >D3.js直方图-x轴上的位置标签和每个bin的数量

D3.js直方图-x轴上的位置标签和每个bin的数量
EN

Stack Overflow用户
提问于 2020-05-28 04:20:37
回答 1查看 210关注 0票数 1

使用D3调整直方图(v3)我发现有两个问题需要解决(original code here):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript">
    var faithfulData = [20,21,26,18,24,24,25,25,21,20,20,18,28,23,17,26,27,27,20,28,23,26,];
    var datos_unicos = Array.from(new Set(faithfulData))
    var margin = {top: 4, right: 10, bottom: 40, left: 40},
        width = 360 - margin.left - margin.right,
        height = 180 - margin.top - margin.bottom;

    var cant_ticks = datos_unicos.length;
    var edad_min = Math.min.apply(Math, datos_unicos) - 3;
    var edad_max = Math.max.apply(Math, datos_unicos) + 3;

    var vartickValues = []
    var tope = (edad_max)+1;
    for (var i =edad_min; i< tope; i++) {
        vartickValues.push(i);
    }

    var x = d3.scale.linear()
        .domain([edad_min, edad_max])
        .range([0, width]);

    var y = d3.scale.linear()
        .domain([0, .1])
        .range([height, 0]);

    var xAxis = d3.svg.axis()
        .scale(x)
        .tickValues(vartickValues)
        .orient("bottom");

    var yAxis = d3.svg.axis()
        .scale(y)
        .orient("left")
        .tickFormat(d3.format("%"));

    var line = d3.svg.line()
        .x(function(d) { return x(d[0]); })
        .y(function(d) { return y(d[1]); });

    var histogram = d3.layout.histogram()
        .frequency(false)
        .bins(cant_ticks);

    var svg = d3.select("#plantel_distribucion").append("svg")
        .attr("width", width + margin.left + margin.right)
        .attr("height", height + margin.top + margin.bottom)
      .append("g")
        .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

    svg.append("g")
        .attr("class", "x plantel_axis")
        .attr("transform", "translate(0," + height + ")")
        .call(xAxis)
      .append("text")
        .attr("class", "label")
        .attr("x", width)
        .attr("y", 34)
        .style("text-anchor", "end")
        .text("Edad de las jugadoras");

    svg.append("g")
        .attr("class", "y plantel_axis")
        .call(yAxis);

      var data = histogram(faithfulData),
          kde = kernelDensityEstimator(epanechnikovKernel(7), x.ticks(100));

      svg.selectAll(".plantel_bar")
          .data(data)
        .enter().insert("rect", ".axis")
          .attr("class", "plantel_bar")
          .attr("x", function(d) { return x(d.x) + 1; })
          .attr("y", function(d) { return y(d.y); })
          .attr("width", x(data[0].dx + data[0].x) - x(data[0].x) - 1)
          .attr("height", function(d) { return height - y(d.y); });

      svg.append("path")
          .datum(kde(faithfulData))
          .attr("class", "plantel_line")
          .attr("d", line);
    //});

    function kernelDensityEstimator(kernel, x) {
      return function(sample) {
        return x.map(function(x) {
          return [x, d3.mean(sample, function(v) { return kernel(x - v); })];
        });
      };
    }

    function epanechnikovKernel(scale) {
      return function(u) {
        return Math.abs(u /= scale) <= 1 ? .75 * (1 - u * u) / scale : 0;
      };
    }
</script>

1)如何将标签放置在bin中心的x轴上?也就是说,刻度线及其在条形中心的标签。

2)如何将每个bin的数量(频率)放在bar上?

我很感谢你的评论,并留下了当前发展的图片:

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-03-01 10:45:45

对于question1,如果您只想在每个bin的中心添加一些刻度,直方图中有xdx属性,它们指示每个bin的位置和步长。您可以使用xtick = x + dx / 2计算x节拍。

对于question2,我认为您可以在直方图上方绘制折线图,并将z-index设置为2。

我希望上面的内容能有所帮助。:)

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

https://stackoverflow.com/questions/62057008

复制
相关文章
Java 【打印俄文的英文字母】
俄语大写字母: А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я 
Lokinli
2023/03/09
8570
习题 9: 打印,打印,打印
Here are the days: Mon Tue Wed Thu Fri Sat Sun Here are the months: Jan Feb Mar Apr May Jun Jul Aug
hankleo
2020/09/16
1.5K0
习题9:打印打印打印
Here are the days: Mon Tue Wed Thu Fri Sat Sun Here are the months: Jan Feb Mar Apr May Jun Jul Aug There's something going on here. With the three double-quotes.
py3study
2018/08/02
1.5K0
linux删除打印队列中的打印任务lprm命令
lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。
用户4988085
2021/07/24
3K0
linux删除打印队列中的打印任务lprm命令
lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。
用户1685462
2021/07/25
2.6K0
linux 删除打印队列中的打印任务 命令:lprm
lprm命令用于删除打印队列中的打印任务。尚未完成的打印机任务会被放在打印机贮列之中,这个命令可用来将常未送到打印机的任务取消。
用户7639835
2021/10/13
2.7K0
逆序打印字符串
s = input("请输入一个字符串:") if len(s) > 31: print("您输入的字符串过长,请重新输入:") else: l = len(s) print("字符串的长度:%d" % l) print(s[::-1])
汪凡
2018/05/29
7430
20190105-打印字母C,H,N,口
*             * *   *        * *     *      * *       *    * *            *
py3study
2020/01/19
6200
Java伪随机数打印任意的字母数字
有这么一段代码,虽然看上去是使用Random类,但可以发现不管怎么运行,结果都是一样的。
sgr997
2022/11/22
8600
习题 8: 打印,打印
1 2 3 4 'one' 'two' 'three' 'four' True False False True '%r %r %r %r' '%r %r %r %r' '%r %r %r %r' '%r %r %r %r' 'I had this thing.' 'That you could type up right.' "But it didn't sing." 'So I said goodnight.'
hankleo
2020/09/16
9820
习题8:打印,打印
1 2 3 4 one two three four True False False True {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} I had this thing. That you could type up right. But it didn't sing. So I said goodnight.
py3study
2018/08/02
7860
centos7删除打印队列中的打印任务lprm命令
lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。
用户7639835
2021/08/28
4990
判断字符串首个字母是否大写,若大写,则输出该字符串中大写字母的个数 并打印。
方法一 通过 ASCII 码判断字母大小写,ASCII在 65-90 之间是大写,97-122 是小写 import java.util.*; public class Application2511 { public static void main(String[] args) { Scanner reader=new Scanner(System.in); System.out.print("请输入一串字符:"); String a=reader.nextLine(); Sy
传说之下的花儿
2023/04/16
6110
如何查找正在等待打印的打印机的打印任务
加菲猫的VFP
2023/08/21
2190
如何查找正在等待打印的打印机的打印任务
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/10
2.3K0
tensorflow: 打印内存中的变量
法一: 循环打印 模板 for (x, y) in zip(tf.global_variables(), sess.run(tf.global_variables())): print '\n', x, y 实例 # coding=utf-8 import tensorflow as tf def func(in_put, layer_name, is_training=True): with tf.variable_scope(layer_name, reuse=tf.AUT
JNingWei
2018/09/28
1.9K0
WinForm中的简单打印
最近工作很是郁闷,有做WEB又要改桌面程序,要求之前基于DevExpress报表打印改成 DataGridView呈现数据 ,配置30分钟提醒用户打印,我发现我是越来越懒了,主要是情绪不好,什么问题 第一反应肯定谷歌之然后自己封装下,无暇思考,万能的谷歌啊
跟着阿笨一起玩NET
2018/09/20
1.5K0
web调用打印机自动打印_网页打印如何设置默认打印机
1. 前言 客户对于一些插件比较敏感,如金融、银行等出于安全的考虑和产品的把控,可能不愿意页面打印的时候,客户端浏览器安装插件。(当然,用户有各种各样的需求和打印格式要求,愿意使用打印控件的,开发的打印功能当然很好。) 所以直接使用浏览器自带的打印功能,就成为一个选择。
全栈程序员站长
2022/11/18
6.5K0
c语言打印字母菱形————用绝对值
打印字母棱形.如键盘上输入F,则屏幕上输出如下棱形:     A        A B       A B C      A B C D     A B C D E    A B C D E F     A B C D E       A B C D         A B C            A B
lop
2019/03/13
1.7K0
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/18
2.2K0

相似问题

如何在c++中打印希腊文字母delta

12

Matlab eps中的希腊文字母\xi问题打印输出

31

打印不在字符串中的字母

41

只打印字符串中的字母

43

打印字符串中不同字母的数目,并打印最常见的字母出现的次数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文