r - 在ggplotly上添加第二个Y轴

标签 r ggplot2 plotly yaxis

我已经使用plotly和ggplot创建了以下数据框对象和图形

library(ggplot2)
library(plotly)

rdate <- function(x,
              min = paste0(format(Sys.Date(), '%Y'), '-01-01'),
              max = paste0(format(Sys.Date(), '%Y'), '-12-31'),
              sort = TRUE) {          
  dates <- sample(seq(as.Date(min), as.Date(max), by = "day"), x, replace=TRUE)
  if (sort == TRUE) {
    sort(dates)
  } else {
    dates
  }
}

DF<-data.frame(Date = rdate(100))
DF$variable<-LETTERS[seq( from = 1, to = 10 )]
DF$Value<-round(runif(1:nrow(DF),min = 10, max = 50))

接下来,我用ggplot创建了一个plot对象
 p <- ggplot(DF, aes(x = Date, y = Value, colour = variable)) + 
  geom_line() + 
  ylab(label="Sellcount") + 
  xlab("Sell Week")
  p<-p + scale_y_continuous(sec.axis = dup_axis())
  ggplotly(p)

如果我使用plot(p)绘制p,则该图有2个矢状点,正如我期望的那样。但是,当我使用ggplotly(p)绘制图形时,仅生成一个Y轴。我无法在互联网上找到与此相关的任何文献。我要求有人在这方面帮助我。

最佳答案

一个简单的解决方法是手动添加第二个轴:

ay <- list(
  tickfont = list(size=11.7),
  titlefont=list(size=14.6),
  overlaying = "y",
  nticks = 5,
  side = "right",
  title = "Second y axis"
)

ggplotly(p) %>%
  add_lines(x=~Date, y=~Value, colors=NULL, yaxis="y2", 
            data=DF, showlegend=FALSE, inherit=FALSE) %>%
  layout(yaxis2 = ay)

enter image description here

关于r - 在ggplotly上添加第二个Y轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52833214/

相关文章:

r - 在 Rstudio 中访问具有 "useMethod("packagefunction 的函数的完整源代码”)?

r - 关于 ggplot 中内部变量的文档,尤其是。控制板

r - ggplot2 中的圆形直方图,条形间距均匀且没有多余线条

r - 使用 slider 在 Shiny 的应用程序中清除传单标记

r - 按 1 列以上排序时,Dplyr Arrange 给出错误

r - 从n x m矩阵转换为R中的长矩阵

r - 如果 ggplot 在 for 循环内部,则它不起作用,尽管它在 for 循环外部工作

javascript - Plotly.js - gd.data 必须是一个数组

r - 为子图绘制图例组,以便单个图例控制所有图表

python - 使绘图树状图也显示负值(Python)