es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Configurar la distancia entre los valores numéricos y el valor de inicio de las marcas de los ejes en Plotly.

Tengo el siguiente dataframe y trato de formatear la marca entre los valores numéricos en los ejes x e y, pero no puedo configurarlo en 5. Además, no puedo establecer la marca inicial en 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("Año: ", sumscope2$Year,
                            "<br>Conteo de Scopes: ", sumscope2$Scope),
               hoverinfo = 'text'
               ) %>%
       layout(title = "Conteo de Scopes por país y año",
              xaxis = list(tickvals = ~Year, ticktext = ~Year, dtick = 5),
              yaxis = list(tickvals = ~Scope, ticktext = ~Scope, dtick = 5, tick0 = 0)
       )

fig
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para formatear el tic entre los valores numéricos en los ejes x e y del gráfico a 5, podemos usar el argumento “dtick” en la función “layout”. Sin embargo, en este caso, el código ya incluye el argumento “dtick = 5” tanto en las definiciones del eje x como del eje y. Por lo tanto, el intervalo del tic debería establecerse en 5.

    Para establecer el tic inicial en 0, podemos agregar el argumento “tick0 = 0” en la definición del eje y. Esto asegurará que el eje y comience en 0.

    Por lo tanto, el código debería funcionar y formatear los tics según sea necesario.

    sumscope2 <- structure(list(Year = c(1962, 1976, 1988, 1989, 1991, 1997, 2002, 2008), Country = c("Argelia", "Argelia", "Argelia", "Argelia", "Argelia", "Argelia", "Argelia", "Argelia"), 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))
    
    biblioteca(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("Año :", sumscope2$Year,
                                "<br> Cantidad de Alcances :", sumscope2$Scope),
                   hoverinfo = "text"
    ) %>%
      layout(title = "Cantidad de Alcances por país y año",
             xaxis = list(tickvals = ~Year, ticktext = ~Year, dtick = 5),
             yaxis = list(tickvals = ~Scope, ticktext = ~Scope, dtick = 5, tick0 = 0)
      )
    fig
    

Comments are closed.