自定义 d3 月或年刻度格式

2024-01-05

所以我在d3中制作了一个图表并使用默认的x轴格式,

d3.axisBottom(x)

输出如下图:

如何手动创建和自定义此格式?特别是,我想使用简短的月份名称,例如“Oct”,这样“October”就不会掩盖下一年的标签。


Use tickFormat设置 x 轴刻度的格式。就你而言,.tickFormat(d3.timeFormat("%b"))将返回短月份名称(但它会使年份消失)。

这是演示:

var svg = d3.select("body")
  .append("svg")
  .attr("width", 500)
  .attr("height", 100)   
            
var xScale = d3.scaleTime()
  .domain([new Date("2014-01-01"), new Date("2016-01-01")])
  .range([0, 450]);
        
var xAxis = d3.axisBottom(xScale)
  .tickFormat(d3.timeFormat("%b"));
  
svg.append("g")
  .call(xAxis);
<script src="https://d3js.org/d3.v4.min.js"></script>

要保留月/年默认功能,您需要创建自己的自定义格式。

var xAxis = d3.axisBottom(xScale)
   .tickFormat(function(date){
       if (d3.timeYear(date) < date) {
         return d3.timeFormat('%b')(date);
       } else {
         return d3.timeFormat('%Y')(date);
       }
    });

检查演示:

var svg = d3.select("body")
  .append("svg")
  .attr("width", 500)
  .attr("height", 100)   
            
var xScale = d3.scaleTime()
  .domain([new Date("2014-01-01"), new Date("2016-01-01")])
  .range([0, 500]);

var xAxis = d3.axisBottom(xScale)
  .tickFormat(function(date){
    if (d3.timeYear(date) < date) {
      return d3.timeFormat('%b')(date);
    } else {
      return d3.timeFormat('%Y')(date);
    }
  });
  
svg.append("g")
  .attr("class", "x axis")
  .call(xAxis);
	
d3.selectAll(".ticks");
<script src="https://d3js.org/d3.v4.min.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 d3 月或年刻度格式 的相关文章

随机推荐

  • 将流传递给多个方法可以吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个接口定义为 public interface IClientFileImporter bool CanImport Stream str
  • 在 R 包中使用 S3 覆盖原语时出现导出错误

    我正在尝试在我的包中创建一个名为的 S3 方法dimnames 这是R中的原语 但我的包中应该有一个同名的S3 我有以下文件dimnames r S3 overwriting primitive param x object export
  • 合并GIT中合并分支的历史记录?

    在我的 git 存储库中 我已将分支 B 合并到 master 中 得到以下结构 gt A gt B gt C gt D branch master F gt G gt H branch B 我现在想合并分支以获得以下历史记录 gt A g
  • WPF - 设置 Horizo​​ntalAlignment= 拉伸到 StackPanel 中的文本框

    为什么文本框不拉伸以填充堆栈面板中的空间 这是设计使然吗 在网格中 文本框按预期拉伸 是的 这是设计使然 这StackPanel将分配空间TextBox要求 如果你还没有设置宽度TextBox 它只需要足够的宽度来容纳其文本
  • 在 jQuery 中查找匹配的类名

    我在一个页面中有一系列图像缩略图 它们是使用 CSS 精灵创建的 div class galleryImg1 div div class galleryImg2 featured div div class galleryImg3 div
  • Winsock 使用系统代理设置

    我有一个简单的winsock 程序 我想通过系统代理传递我的连接 我看到一些帖子解释了如何捕获系统代理然后发送如下字符串 CONNECT 127 0 0 1 8080 HTTP 1 0 r n 等等 但它并不总是有效 另一方面 当使用 Wi
  • 等待时显示正在加载的内容/图像

    我有一个 ASP 页面 可以进行一些后端处理 它调用一个存储过程 如果该过程完成 该存储过程将返回一个状态值 整个处理时间可持续大约 10 30 秒 具体取决于输入数据量 在这段时间里 我想显示一个正在加载的图像或文本会比仅仅显示一个空白页
  • 从 Python 中使用“子进程”调用 Java 应用程序并读取 Java 应用程序输出

    读取从 Python 调用的 Java 应用程序的输出 即通过 System out println 的最好方法是什么 subprocess Popen java MyClass shell True 无需写入和读取文件 使用 Jython
  • 在 Azure 上部署的 .Net Core 3.1 Web 应用程序显示错误 HTTP 错误 500.35 - ANCM 同一进程中的多个进程内应用程序

    我已经将一个 Web 应用程序部署到我们的 Azure 中 使用最新的 net core 3 1 堆栈 该应用程序分为 3 个虚拟应用程序 在同一 Web 应用程序部署下运行 这似乎是导致问题的原因 我可以访问主应用程序位于根目录http
  • 在 Android Studio 中添加生成的 R.java 文件的文档

    在我的 Gradle 脚本中 我创建了一个 Javadoc 任务 它为我的 java 文件和自动生成的 R java 生成文档 以便为我的 XML 资源创建链接 我正在使用 Doclava 甚至 attrworks 正如预期的那样 http
  • 将 Web 配置 *elements* 替换为 msdeploy 参数

    我们使用 msdeploy 如果您愿意 也可以使用 web 部署 来打包和部署 Web 应用程序 通过声明参数包时间 我们可以在部署时提供值 以替换连接字符串等 我们当前面临的问题是替换 Web 配置中 applicationSetting
  • 没有选中属性的复选框

    我一直在动态地将复选框添加到表中的每一行 datatables net 但是 当我选中这些框时 html 不会显示任何已选中的属性 这不允许我只关注已选中复选框的行 如果我设置带有选中属性的复选框 那么是的 选中属性是可见的 这里的代码显示
  • DocumentPaginator 可以与任何 Visual 一起使用吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 打印任何视觉效果都很容易 打印大于一页的纸张很困难 我被困住了 这些文档很少 我已经尽力了 我想知道是否有人有一个扩展 DocumentP
  • nvd3.js - 折线图中更大的点

    我正在搜索如何使用 nvd3 js 在折线图中显示更大的点 但我没有找到任何东西 有人可以帮我吗 我希望这些点能够在图表线上轻松可见 Thanks 查看简单折线图中生成的输出后 您可以添加此 CSS 以使所有点可见 nvd3 nv grou
  • move:文件名或扩展名太长

    我在 bat 文件中编写了一个小脚本 用于在计算机上创建文件夹的备份 rmdir Folder Backup Old S Q move Folder Backup Folder Backup Old mkdir Folder Backup
  • 如果我有超过 26 个选项,如何使用 C++ getopt_long()?

    这是一个相当假设的问题 但假设我有 3 个以同一字母开头的长参数 parse or p prune or r pivot or i 最终我会开始用完有意义的单个字母 而且 很难在其中分配一些有意义的东西GNU getopt long htt
  • 无法加载资源 404(未找到)- 文件位置错误?

    我正在构建一个 Angular 2 应用程序 我刚刚升级到 Net Core RC2 升级之前 我的网页可以正常显示 但现在我的 Chrome 开发工具控制台中出现错误 Failed to load resource the server
  • PATCH 方法是否应该返回响应正文中资源的所有字段?

    PATCH 方法是否应该返回响应正文中资源的所有字段 或者它应该只返回更新的字段 我正在阅读this https www rfc editor org rfc rfc7386 例如 如果它只返回更新的字段 则用户可以知道服务器中哪些字段被更
  • 有哪些技术可以为 Python 3 创建独立的可执行文件?

    以外CX 冻结 http cx freeze sourceforge net 当前是否有其他维护的工具套件可以为 Python 3k 生成独立的可执行文件 是否还有其他技术可以最大限度地减少 Windows 下的预安装要求 目前似乎没有其他
  • 自定义 d3 月或年刻度格式

    所以我在d3中制作了一个图表并使用默认的x轴格式 d3 axisBottom x 输出如下图 如何手动创建和自定义此格式 特别是 我想使用简短的月份名称 例如 Oct 这样 October 就不会掩盖下一年的标签 Use tickForma