【问题标题】:How to set the layout in the updated version of plotly?如何在 plotly 的更新版本中设置布局?
【发布时间】:2018-10-02 04:45:24
【问题描述】:

我正在尝试使用新版本的 plotly 绘制一个简单的图形,但我不断收到以下错误

UseMethod("layout") 中的错误:'layout' 没有适用的方法 应用于“字符”类的对象

这就是我的代码的样子:

library(plotly)
library(RColorBrewer)

year <- c(1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006)
amt <- c(11, 16, 21, 27, 33, 37, 43, 54, 68, 94, 128, 170, 213, 258, 307, 348, 385)

data <- data.frame(year, amt)

data$year <- factor(data$year, levels = data[["year"]])

xaxis <- list(title = "Years",
          showline = TRUE,
          showgrid = FALSE,
          showticklabels = TRUE,
          linecolor = 'black',
          linewidth = 1,
          autotick = FALSE,
          ticks = 'outside',
          tickcolor = 'black',
          tickwidth = 2,
          ticklen = 5,
          tickfont = list(family = 'Cambria',
                          size = 10,
                          color = 'rgb(82, 82, 82)'))

yaxis <- list(title = "Years",
          showline = TRUE,
          showgrid = FALSE,
          showticklabels = TRUE,
          linecolor = 'black',
          linewidth = 1,
          autotick = FALSE,
          ticks = 'outside',
          tickcolor = 'black',
          tickwidth = 2,
          ticklen = 5,
          tickfont = list(family = 'Cambria',
                          size = 10,
                          color = 'rgb(82, 82, 82)'))


plot_ly(data, x = ~year,
    y = ~amt,
    name= '',
    type='scatter',
    mode = 'lines+markers',
    line = list(color = toRGB('#964f4d')),
    marker = list(color = toRGB("#964f4d")))

layout(title = 'Pre-purchase financing poll',
   xaxis = layout.xaxis,
   yaxis = layout.yaxis)

布局命令不起作用,如果有人知道为什么以及我应该怎么做,我将不胜感激!

谢谢!

【问题讨论】:

    标签: r plotly


    【解决方案1】:

    您可以尝试在plot_lylayout 之间添加%&gt;%

    【讨论】:

      【解决方案2】:

      说实话,我在整个情节包方面都不是很先进。我无法告诉你为什么它不起作用(我根本不知道),但我更改了你的代码并得到了输出!

      library(plotly)
      library(RColorBrewer)
      
      year <- c(1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006)
      amt <- c(11, 16, 21, 27, 33, 37, 43, 54, 68, 94, 128, 170, 213, 258, 307, 348, 385)
      
      data <- data.frame(year, amt)
      
      data$year <- factor(data$year, levels = data[["year"]])
      
      a <- list(title = "Years",
                showline = TRUE,
                showgrid = FALSE,
                showticklabels = TRUE,
                linecolor = 'black',
                linewidth = 1,
                autotick = FALSE,
                ticks = 'outside',
                tickcolor = 'black',
                tickwidth = 2,
                ticklen = 5,
                tickfont = list(family = 'Cambria',
                                size = 10,
                                color = 'rgb(82, 82, 82)'))
      
      b <- list(title = "Years",
                showline = TRUE,
                showgrid = FALSE,
                showticklabels = TRUE,
                linecolor = 'black',
                linewidth = 1,
                autotick = FALSE,
                ticks = 'outside',
                tickcolor = 'black',
                tickwidth = 2,
                ticklen = 5,
                tickfont = list(family = 'Cambria',
                                size = 10,
                                color = 'rgb(82, 82, 82)'))
      
      
      plot_ly(data, x = ~year,
          y = ~amt,
          name= '',
          type='scatter',
          mode = 'lines+markers',
          line = list(color = toRGB('#964f4d')),
          marker = list(color = toRGB("#964f4d"))) %>%
      layout(title = 'Pre-purchase financing poll',
         xaxis = a,
         yaxis = b)
      

      很抱歉,我无法帮助您解释,但我希望这会有所帮助!

      【讨论】:

      • 它在某种程度上可以工作,但现在 y 轴的所有刻度都在 0 标记上。你知道这是为什么吗??
      【解决方案3】:

      这是上述%&gt;% 管道的一个简单示例

      p <- plot_ly(
        type = "scatter",
        data = vep_wes_aff_rare_summary, 
        x = ~n, 
        y = ~mean_af
      )%>%
      layout(
        title = 'Styled Scatter',
        yaxis = list(zeroline = FALSE),
        xaxis = list(zeroline = FALSE)
      )
      

      【讨论】:

        猜你喜欢
        • 2019-04-29
        • 1970-01-01
        • 2019-10-01
        • 2020-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        相关资源
        最近更新 更多