R:自动缩放图表时如何忽略形状';s轴在绘图中?

R:自动缩放图表时如何忽略形状';s轴在绘图中?,r,charts,plotly,r-plotly,R,Charts,Plotly,R Plotly,我有一张x轴为日期的绘图图。我添加了一个矩形来突出显示指定的日期段。有时,此日期周期将位于图表中显示的数据的日期范围内,在这种情况下,没有问题。图表显示正常。但是,日期周期可能超出图表中的日期范围(或者重叠,部分时间段超出图表中的日期范围)。在这种情况下,生成图表时,x轴会自动缩放以显示完整的矩形以及数据(或轨迹) 这不是我想要的。我希望它只在数据(跟踪)的日期范围内自动缩放(好像矩形不存在),但在图表的背景中添加矩形。如果用户手动缩小,他们应该能够看到完整的矩形,包括位于数据之外的部分,但这不

我有一张x轴为日期的绘图图。我添加了一个矩形来突出显示指定的日期段。有时,此日期周期将位于图表中显示的数据的日期范围内,在这种情况下,没有问题。图表显示正常。但是,日期周期可能超出图表中的日期范围(或者重叠,部分时间段超出图表中的日期范围)。在这种情况下,生成图表时,x轴会自动缩放以显示完整的矩形以及数据(或轨迹)

这不是我想要的。我希望它只在数据(跟踪)的日期范围内自动缩放(好像矩形不存在),但在图表的背景中添加矩形。如果用户手动缩小,他们应该能够看到完整的矩形,包括位于数据之外的部分,但这不应该是默认值

请参见下面的代码作为示例。这是代码的编辑版本,取自此处:

数据的日期范围为1967-2015年。x轴的自动缩放应仅基于此。但是,由于其中一个矩形的x坐标为1940和1945,因此x轴会自动缩放到1940-2015,以显示整个矩形,从而在1940和1967年之间留下很大的空白,没有数据。我希望这样,如果用户手动缩小到1940-2015的比例,这就是他们看到的,但是自动缩放应该忽略矩形,默认范围为1967-2015

library(plotly)
fig <- plot_ly(economics, x = ~date, y = ~uempmed, name = "unemployment")

# add shapes to the layout
fig <- layout(fig, title = 'Highlighting with Rectangles',
              shapes = list(
                list(type = "rect",
                     fillcolor = "blue", line = list(color = "blue"), opacity = 0.3,
                     x0 = "1940-01-01", x1 = "1945-01-01", xref = "x",
                     y0 = 0, y1 = 1, yref = "paper"),
                list(type = "rect",
                     fillcolor = "blue", line = list(color = "blue"), opacity = 0.2,
                     x0 = "2000-01-01", x1 = "2005-01-01", xref = "x",
                     y0 = 0, y1 = 1, yref = "paper")))

fig
library(plotly)
无花果
library(plotly)
fig <- plot_ly(economics, x = ~date, y = ~uempmed, name = "unemployment")

minx <- min(economics$date)
maxx <- max(economics$date)

x_axis <- list(
  range = c(minx,maxx)
)

# add shapes to the layout
fig <- layout(fig, xaxis= x_axis, title = 'Highlighting with Rectangles',
              shapes = list(
                list(type = "rect",
                     fillcolor = "blue", line = list(color = "blue"), opacity = 0.3,
                     x0 = "1940-01-01", x1 = "1945-01-01", xref = "x",
                     y0 = 0, y1 = 1, yref = "paper"),
                list(type = "rect",
                     fillcolor = "blue", line = list(color = "blue"), opacity = 0.2,
                     x0 = "2000-01-01", x1 = "2005-01-01", xref = "x",
                     y0 = 0, y1 = 1, yref = "paper")),
              xaxis = list(range=c(as.Date("1980-01-01"),as.Date("2000-01-01")))
)

fig