d3中的axis.ticks详解

d3中有一个和坐标轴相关的方法,即axis.ticks().但是它的用法让人琢磨不透,本文就试图通过一些案例来对其进行详细的解释。

axis.ticks()用来设定分段数量

当通过比例尺创建一个y坐标轴的时候,可能你只想让你的y轴坐标刻度只显示两个,即只有收尾,怎么办?把ticks()参数设为1即可:

let scale = d3.scale.linear()
  .domain([0, 100])
  .range([0, 300])

let axis = d3.svg.axis()
  .scale(scale)
  .orient('left')
  .ticks(1)

设为1表示整个y轴被分为1段,两头都会出现一个刻度,所以就会出现两个刻度。同样的道理,设置为2则会出现两段三个刻度,设置为5则会出现5段6个刻度。

然而,当你设置为3的时候,奇怪的事情发生了。并没有出现3段4个刻度的结果,而是出现了2段3个刻度。这是怎么回事呢?

axis.ticks()的分段规则

之所以3不起作用了,是因为定义域domain中的[0, 100]无法计算得出对应的结果。在这个回答里,mbostock指出,无论你怎么设定,ticks的参数实际上都是在2,5和10这三个中选。

The default ticks for quantitative scales are multipl

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
非常抱歉,我之前给出的代码的`axis.ticks.y.length`是一个错误的参数,导致出现了错误。实际上,在ggplot2没有直接控制刻度线长度的参数。如果你想要控制刻度线的长度,可以使用`theme()`函数的`panel.grid.major.x`和`panel.grid.major.y`参数来调整刻度线的长度。以下是修正后的示例代码: ```R library(ggplot2) # 数据准备 df <- data.frame(loci = c("A", "B", "C", "D"), In = c(0.2, 0.5, 0.3, 0.8)) # 创建柱形图 p <- ggplot(df, aes(x = loci, y = In)) + geom_bar(stat = "identity", fill = "blue") + geom_text(aes(label = In), vjust = -0.3, size = 16, family = "Times New Roman") + geom_hline(yintercept = 0.1, linetype = "dashed", color = "red") + theme(text = element_text(family = "Times New Roman", size = 16), panel.grid.major.x = element_blank(), panel.grid.major.y = element_line(color = "gray", size = 0.3), panel.grid.minor = element_blank(), panel.border = element_rect(color = "black", fill = NA)) # 显示图形 print(p) ``` 这段修正后的代码会创建一个柱形图,横轴是特征变量(loci),纵轴是数值(In)。柱形的填充颜色为蓝色,柱形上方会显示对应的数值,并且字体为Times New Roman,大小为16。同时,还会在图添加一条值为0.1的红色虚线。 修正后的代码,使用`panel.grid.major.x = element_blank()`隐藏了横坐标刻度线,使用`panel.grid.major.y = element_line(color = "gray", size = 0.3)`来设置纵坐标刻度线的颜色为灰色,长度为0.3。 请注意,确保已经安装了ggplot2包,可以通过`install.packages("ggplot2")`来安装。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值