Сюжет: как установить минимальное значение на вторичной оси Y? - PullRequest
1 голос
/ 01 августа 2020

Я хочу установить минимальное значение на дополнительной оси Y. Это мой код:

library(plotly)

# my data
value <- c(300000,400000,500000,600000,500000,600000)
x1 <- c(3,4,5,5,4,3)
x2 <-c(3,4,5,5,4,3)
name <- c("martin","john","marc","igor","thea","julia")
df <- data.frame(value, x1, x2, name)


# graph with plotly
graph=df %>% 
  plot_ly(x = ~name) %>% 
  add_bars(y = ~x1,
           name = "bar1") %>% 
  add_bars(y = ~x2,
           name = "bar2") %>%
  add_lines(y = ~value,
            name = "line",
            yaxis = "y2") %>% 
  layout(barmode = "bar",
         yaxis2 = list(overlaying = "y",
                       side = "right"),
         barmode = "bar",
         legend = list(x = 1.1, y =1))

# showing graph
  graph

, и я получаю это: введите описание изображения здесь

, но я хочу, чтобы вторая ось Y начиналась с 200k (или 100k) вместо 300k.

Как мы можем это исправить? Некоторая помощь будет оценена

1 Ответ

1 голос
/ 02 августа 2020

Обычно, если вы уже настроили fig:

fig <- fig %>% layout(yaxis2 = list(range = c(<min>, <max>)))

И в вашем c случае:

graph <- graph %>% layout(yaxis2 = list(range = c(200000,600000)))

График

введите описание изображения здесь

Полный код:

library(plotly)

# my data
value <- c(300000,400000,500000,600000,500000,600000)
x1 <- c(3,4,5,5,4,3)
x2 <-c(3,4,5,5,4,3)
name <- c("martin","john","marc","igor","thea","julia")
df <- data.frame(value, x1, x2, name)


# graph with plotly
graph=df %>% 
  plot_ly(x = ~name) %>% 
  add_bars(y = ~x1,
           name = "bar1") %>% 
  add_bars(y = ~x2,
           name = "bar2") %>%
  add_lines(y = ~value,
            name = "line",
            yaxis = "y2") %>% 
  layout(barmode = "bar",
         yaxis2 = list(overlaying = "y",
                       side = "right"),
         barmode = "bar",
         legend = list(x = 1.1, y =1))

# showing graph
#graph

graph <- graph %>% layout(yaxis2 = list(
      #scaleanchor = "x",
      #scaleratio = 0.2,
      range = c(200000,600000)
      #title = "1:5"
      ))
graph
...