在 R 中将绘图布局从一个绘图复制到另一个绘图

高坦

我必须在 R 中创建一系列图并plotly为此使用它们中的很多具有相同的轴,我想复制layout绘图一部分而不必明确地编写它。有没有办法做到这一点?

代码

数据

dat <- data.frame(time = seq.POSIXt(from = Sys.time(), to = Sys.time() - weeks(4), 
                                    length.out = 720), 
                  output = rnorm(720, mean = 4000, sd = 300), 
                  temperature = rnorm(720, mean = 25, sd = 4))

三地块:

plot1 <- plot_ly(dat) %>% 
  add_trace(x = ~time, y = ~output, name = 'Output', mode = 'lines+markers', 
            type = 'scatter') %>%
  layout(
    axis = list(title = 'Time'),
    yaxis = list(title = 'Power Output (kW)'),
    plot_bgcolor = '#EDEDED'
  )


plot2 <- plot_ly(dat) %>% 
  add_trace(x = ~time, y = ~output, name = 'Output', mode = 'lines+markers', 
            type = 'scatter') %>%
  add_trace(x = ~time, y = ~temperature, name = 'Temperature', mode = 'lines+markers', 
            type = 'scatter') %>%
  layout(
    axis = list(title = 'Time'),
    yaxis = list(title = 'Power Output (kW)'),
    yaxis2 = list(title = 'Temperature (C)', overlaying = 'y', side = 'right'),
    plot_bgcolor = '#EDEDED'
  )

plot3 <- plot_ly(dat[output > 3500, ]) %>% 
  add_trace(x = ~time, y = ~output, name = 'Output', mode = 'lines+markers', 
            type = 'scatter') %>%
  add_trace(x = ~time, y = ~temperature, name = 'Temperature', mode = 'lines+markers', 
            type = 'scatter') %>%
  layout(
    axis = list(title = 'Time'),
    yaxis = list(title = 'Power Output (kW)'),
    yaxis2 = list(title = 'Temperature (C)', overlaying = 'y', side = 'right'),
    plot_bgcolor = '#EDEDED'
  )

有没有办法定义一个layout我可以重用的 if forplot2plot3. 就像是:

twoAxis <- list(
  axis = list(title = 'Time'),
  yaxis = list(title = 'Power Output (kW)'),
  yaxis2 = list(title = 'Temperature (C)', overlaying = 'y', side = 'right'),
  plot_bgcolor = '#EDEDED'
)

在情节中调用它:

plot2 <- plot_ly(dat, layout = twoAxis) %>%
     add_trace(...) %>% 
     add_trace(...)
乔里斯 C.

layout使用一些默认参数值围绕函数编写包装器可能是有意义的这样,您仍然可以在必要时灵活地指定不同或额外的输入参数:

library(plotly)

## define wrapper function around `layout`
twoAxisLayout <- function(p, 
    xaxis = list(title = "Time"), 
    yaxis = list(title = "Power Output (kW)"), 
    yaxis2 = list(title = 'Temperature (C)', overlaying = 'y', side = 'right'), 
    plot_bgcolor = '#EDEDED', ...) {

    layout(p, xaxis = xaxis, yaxis = yaxis, yaxis2 = yaxis2, plot_bgcolor = plot_bgcolor, ...)

}

## use template layout function
plot2 <- plot_ly(dat) %>% 
    add_trace(x = ~time, y = ~output, name = 'Output', mode = 'lines+markers', 
        type = 'scatter') %>%
    add_trace(x = ~time, y = ~temperature, name = 'Temperature', mode = 'lines+markers', 
        type = 'scatter') %>%
    twoAxisLayout()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R:如何从一个CSV进行多个绘图,按列分组

来自分类Dev

R将列类从一个数据帧分配(或复制)到另一个

来自分类Dev

将数据从列表复制到R中的另一个

来自分类Dev

将矩阵中的值复制到 r 中的另一个位置

来自分类Dev

根据条件将列的子集复制到R中的另一个数据帧

来自分类Dev

如何使用R在一个绘图上叠加3个函数

来自分类Dev

R:一个绘图窗口中的两个图形彼此相邻?

来自分类Dev

将一个文件的前X行复制到R中另一个文件的最快方法?(跨平台)

来自分类Dev

如何在R中将变量从一个数据帧插入到另一个匹配时间

来自分类Dev

如何在R中以不同颜色在一个绘图上绘制多个ECDF

来自分类Dev

用R在一个绘图中按行绘制图形

来自分类Dev

如何编写一个R函数以顺序显示绘图?

来自分类Dev

如何基于一个因素在R中的绘图上获得不同的点?

来自分类Dev

如果只有一个数据点,则无法使用R绘图显示文本

来自分类Dev

R在一个绘图中绘制来自不同数据帧的箱形图

来自分类Dev

R; 基本绘图:多个图表:在oma边界绘制一个框

来自分类Dev

用R在一个绘图中按行绘制图形

来自分类Dev

在R中的绘图中的第一个位置指定范围

来自分类Dev

如何编写一个R函数以顺序显示绘图?

来自分类Dev

R:根据一个值设置 PCA 自动绘图的数据点大小

来自分类Dev

使用R在一个布局/面/网格内绘制4个地图(2 * 2)时出现“ plot.new()中的错误:绘图区域太大”

来自分类Dev

使用R在一个布局/面/网格内绘制4个地图(2 * 2)时出现“ plot.new()中的错误:绘图区域太大”

来自分类Dev

如何将数据从一个`reactive()`传递到R Shiny中的另一个?

来自分类Dev

在Django中将字段从一个实例复制到另一个

来自分类Dev

用R计算从一个点到另一个点的距离

来自分类Dev

在Shiny中设置一个绘图缩放以匹配另一个绘图缩放

来自分类Dev

如何将文件从文件夹和子文件夹复制到R中的另一个文件夹?

来自分类Dev

Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

来自分类Dev

Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

Related 相关文章

  1. 1

    R:如何从一个CSV进行多个绘图,按列分组

  2. 2

    R将列类从一个数据帧分配(或复制)到另一个

  3. 3

    将数据从列表复制到R中的另一个

  4. 4

    将矩阵中的值复制到 r 中的另一个位置

  5. 5

    根据条件将列的子集复制到R中的另一个数据帧

  6. 6

    如何使用R在一个绘图上叠加3个函数

  7. 7

    R:一个绘图窗口中的两个图形彼此相邻?

  8. 8

    将一个文件的前X行复制到R中另一个文件的最快方法?(跨平台)

  9. 9

    如何在R中将变量从一个数据帧插入到另一个匹配时间

  10. 10

    如何在R中以不同颜色在一个绘图上绘制多个ECDF

  11. 11

    用R在一个绘图中按行绘制图形

  12. 12

    如何编写一个R函数以顺序显示绘图?

  13. 13

    如何基于一个因素在R中的绘图上获得不同的点?

  14. 14

    如果只有一个数据点,则无法使用R绘图显示文本

  15. 15

    R在一个绘图中绘制来自不同数据帧的箱形图

  16. 16

    R; 基本绘图:多个图表:在oma边界绘制一个框

  17. 17

    用R在一个绘图中按行绘制图形

  18. 18

    在R中的绘图中的第一个位置指定范围

  19. 19

    如何编写一个R函数以顺序显示绘图?

  20. 20

    R:根据一个值设置 PCA 自动绘图的数据点大小

  21. 21

    使用R在一个布局/面/网格内绘制4个地图(2 * 2)时出现“ plot.new()中的错误:绘图区域太大”

  22. 22

    使用R在一个布局/面/网格内绘制4个地图(2 * 2)时出现“ plot.new()中的错误:绘图区域太大”

  23. 23

    如何将数据从一个`reactive()`传递到R Shiny中的另一个?

  24. 24

    在Django中将字段从一个实例复制到另一个

  25. 25

    用R计算从一个点到另一个点的距离

  26. 26

    在Shiny中设置一个绘图缩放以匹配另一个绘图缩放

  27. 27

    如何将文件从文件夹和子文件夹复制到R中的另一个文件夹?

  28. 28

    Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

  29. 29

    Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

热门标签

归档