Plotly:即使在R中选择一个因子,也强制轴限制

brccelvz  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(119)

我试图绘制一些数据,我希望有一个固定的日期范围,即使我过滤我的数据。我的意思是,当我有这个绘图如下:

e.test_data = structure(list(Date = structure(c(14975, 15005, 15035, 15065, 
15095, 15125, 15155, 15185, 15215, 15245, 15275, 15305, 15335, 
15365, 15395, 15425, 15455, 15485, 15515, 15545, 15575, 15605, 
15635, 15665, 15695, 15725, 15755, 15785, 15815, 15845, 15875, 
15905, 15935, 15965, 15995, 16025, 16055, 16085, 16115, 16145, 
16175, 16205, 16235, 16265, 16295, 16325, 16355, 16385, 16415, 
16445, 16475, 16505, 16535, 16565, 16595, 16625, 16655, 16685, 
16715, 16745, 16775, 16805, 16835, 16865, 16895, 16925, 16955, 
16985, 17015, 17045, 17075, 17105, 17135, 17165, 17195, 17225, 
17255, 17285, 17315, 17345, 17375, 17405, 17435, 17465, 17495, 
17525, 17555, 17585, 17615, 17645, 17675, 17705, 17735, 17765, 
17795, 17825, 17855, 17885, 17915, 17945, 17975, 18005, 18035, 
18065, 18095, 18125, 18155, 18185, 18215, 18245, 18275, 18305, 
18335, 18365, 18395, 18425, 18455, 18485, 18515, 18545, 18575, 
18605, 18635, 18665, 18695, 18725, 18755, 18785, 18815, 18845, 
18875, 18905, 18935, 18965, 18995), class = "Date"), X1 = c(1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1), X2 = c("OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "NOK", "OK", "NOK", "OK", "NOK", "OK", "NOK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", 
"OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK")), row.names = c(NA, 
135L), class = "data.frame")

plot_ly(data=e.test_data, x=~Date, y=~X1, type ="bar", color=~X2)%>%
  layout(xaxis = list(range = c(as.numeric(as.Date('2010-01-01'))*1000,
                                as.numeric(as.Date('2023-01-01'))*1000),
                      type  = "date" ))

并选择“NOK”值,则量程改变.得到下图:

即使我只选择了“NOK”值,是否有办法在2010年和2023年之间保持相同的“x”(日期)轴范围?
另外,是否有办法在日期轴上显示所有年份(2010,2011,2013,...),而不仅仅是某些年份?
非常感谢你提前!

eqoofvh9

eqoofvh91#

要保持范围固定,需要设置fixedrange并指定范围。当我运行代码时,由于设置范围的方式,没有绘制任何内容。
你不需要把它变成数字,你也不需要设置类型。
查看不同之处:

plot_ly(data = e.test_data, x = ~Date, y = ~X1, type = "bar", color = ~X2) %>%
  layout(xaxis = list(range = c(as.Date('2010-01-01'), as.Date('2023-01-01')),
                      type  = "date", fixedrange = T))

相关问题