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

Time:01-07

I have the dataframe below and I try to format the tick between numeric values in x and y axes but I cant set it to 5. Also I cannot set the initial tick to 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

CodePudding user response:

You can't combine tickvals and dtick.

tickvals is the way to "manually" place the ticks and dtick provides the steps in-between ticks on the axis (which might not correspond with irregular tickvals).

Please check the following:

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

result

PS: Please run schema() and navigate

object ► layout ► layoutAttributes ► xaxis ► dtick

to see the argument description.

  •  Tags:  
  • Related