在 plotly 中设置数值与轴的起始刻度值之间的刻度距离

Set tick distance between numeric values and the beginning tick value of axes in plotly

我有下面的数据框,我尝试格式化 x 轴和 y 轴上数值之间的刻度,但我无法将其设置为 5。我也无法将初始刻度设置为 0。

sumscope2<-structure(list(Year = c(1962, 1976, 1988, 1989, 1991, 1997, 2002, 
2008), Country = c("Algeria", "Algeria", "Algeria", "Algeria", 
"Algeria", "Algeria", "Algeria", "Algeria"), Scope = c(2, 9, 
3, 2, 15, 3, 23, 4)), class = c("grouped_df", "tbl_df", "tbl", 
"data.frame"), row.names = c(NA, -8L), groups = structure(list(
    Year = c(1962, 1976, 1988, 1989, 1991, 1997, 2002, 2008), 
    .rows = structure(list(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L), ptype = integer(0), class = c("vctrs_list_of", 
    "vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -8L), .drop = TRUE))

library(plotly)
fig <- plot_ly(data = sumscope2, x = ~Year, y = ~Scope,mode = 'lines+markers',
               marker = list(size = 10,
                             color = 'rgba(255, 182, 193, .9)',
                             line = list(color = 'rgba(152, 0, 0, .8)',
                                         width = 2)),
               text=paste("Year :", sumscope2$Year,
                          "<br> Count of Scopes :", sumscope2$Scope),
               hoverinfo="text"
)%>% 
  layout(title="Count of Scope per country and year",
         xaxis=list(tickvals=~Year,ticktext=~Year,dtick = 5),
         yaxis=list(tickvals=~Scope,ticktext=~Scope,dtick = 5,tick0 = 0)
  )
fig

您不能合并 tickvalsdtick

tickvals 是“手动”放置刻度的方式,dtick 提供轴上刻度之间的步骤(可能与不规则的 tickvals 不对应)。

请检查以下内容:

sumscope2 <- structure(list(Year = c(1962, 1976, 1988, 1989, 1991, 1997, 2002, 
2008), Country = c("Algeria", "Algeria", "Algeria", "Algeria", 
"Algeria", "Algeria", "Algeria", "Algeria"), Scope = c(2, 9, 
3, 2, 15, 3, 23, 4)), class = c("grouped_df", "tbl_df", "tbl", 
"data.frame"), row.names = c(NA, -8L), groups = structure(list(
    Year = c(1962, 1976, 1988, 1989, 1991, 1997, 2002, 2008), 
    .rows = structure(list(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L), ptype = integer(0), class = c("vctrs_list_of", 
    "vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -8L), .drop = TRUE))

library(plotly)

sumscope2DF <- as.data.frame(sumscope2)

fig <- plot_ly(
  data = sumscope2DF,
  x = ~ Year,
  y = ~ Scope,
  type = "scatter",
  mode = "lines+markers",
  marker = list(
    size = 10,
    color = 'rgba(255, 182, 193, .9)',
    line = list(color = 'rgba(152, 0, 0, .8)',
                width = 2)
  ),
  line = list(color = 'rgba(152, 0, 0, .8)',
              width = 2),
  text = paste(
    "Year :",
    sumscope2DF$Year,
    "<br> Count of Scopes :",
    sumscope2DF$Scope
  ),
  hoverinfo = "text"
) %>% layout(
  title = "Count of Scope per country and year",
  xaxis = list(
    dtick = 5
  ),
  yaxis = list(
    dtick = 5,
    tick0 = 0
  )
)

fig

PS:请运行schema()并导航

对象 ► 布局 ► layoutAttributes ► xaxis ► dtick

查看参数说明。