我想在特定日期添加一条垂直线到我的地块。我正在使用R中plot_ly()
包中的plotly
函数。
p <- plot_ly(dt.allDataFvsS, x = dt.allDataFvsS$date, y = dt.allDataFvsS$meanDifference, mode = 'lines',
type = "scatter", line = list(color = " #007d3c")) %>%
layout(title = "Average Price Difference Forward vs. Spot", xaxis = list(title = "Date"),
yaxis = list(title = "EUR / MWh"))
日期具有以下格式:例如"2018-10-01" ("Y-M-D")
我的情节看起来像这样:
所以,我的问题是如何在日期"2018-10-01"
上得到一条黑色的竖线?
每年开始时是否也可能有垂直线?还是每年的每个季度(1月-4月-7月-10月)?
如果有人可以帮助我,我会很高兴?不幸的是,经过一天的互联网浏览,我找不到任何有效的方法。
答案 0 :(得分:0)
由于没有提供任何数据来重现您的问题,因此建议您使用add_trace()
函数的下一种方法,在此方法中定义直线的坐标:
p <- plot_ly(dt.allDataFvsS, x = dt.allDataFvsS$date, y = dt.allDataFvsS$meanDifference, mode = 'lines',
type = "scatter", line = list(color = " #007d3c")) %>%
add_trace(x =as.Date("2018-10-01"),type = 'scatter', mode = 'lines',
line = list(color = 'black'),name = '') %>%
layout(title = "Average Price Difference Forward vs. Spot", xaxis = list(title = "Date"),
yaxis = list(title = "EUR / MWh"))
让我知道是否可行!
答案 1 :(得分:0)
这是基于shapes
而不是添加另一条迹线的另一种方法(您可以看到缩小的区别+垂直线没有图例项):
library(plotly)
dates <- seq(from = as.Date("2018-08-01"), to = as.Date("2018-12-31"), by = 1)
dt.allDataFvsS <- data.frame(date = dates, meanDifference = sin(seq_along(dates)*0.1))
vline <- function(x = 0, color = "red") {
list(
type = "line",
y0 = 0,
y1 = 1,
yref = "paper",
x0 = x,
x1 = x,
line = list(color = color)
)
}
p <- plot_ly(dt.allDataFvsS, x = dt.allDataFvsS$date, y = dt.allDataFvsS$meanDifference, mode = 'lines',
type = "scatter", line = list(color = " #007d3c")) %>%
layout(title = "Average Price Difference Forward vs. Spot", xaxis = list(title = "Date"),
yaxis = list(title = "EUR / MWh"))
p %>% layout(shapes = list(vline(as.Date("2018-10-01"))))
基于this answer。