From 4ba97c85073eef7f151d4406116c6696b520e32d Mon Sep 17 00:00:00 2001 From: chschan Date: Tue, 10 Jun 2025 23:35:14 +1000 Subject: [PATCH 1/5] WIP --- R/splinewithsimultaneousconfint.R | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/R/splinewithsimultaneousconfint.R b/R/splinewithsimultaneousconfint.R index c51e60e..4c5d349 100644 --- a/R/splinewithsimultaneousconfint.R +++ b/R/splinewithsimultaneousconfint.R @@ -169,6 +169,8 @@ SplineWithSimultaneousConfIntervals <- function(outcome, # Create plot plot.data <- pred$fit names(plot.data) <- pred$predictor + cat("plot.data:\n") + print(plot.data) pp <- Line(plot.data, colors = mean.color, line.thickness = mean.weight, title = title, x.title = x.title, y.title = y.title, y.tick.format = y.tick.format, y.hovertext.format = y.hovertext.format, @@ -178,7 +180,9 @@ SplineWithSimultaneousConfIntervals <- function(outcome, y.tick.font.size = y.tick.font.size, x.tick.font.size = x.tick.font.size, hovertext.font.size = hovertext.font.size, legend.show = FALSE, ...) - pp$htmlwidget <- add_ribbons(pp$htmlwidget, x = pred$predictor, + cat("ribbon:\n") + print(pred$predictor) + pp$htmlwidget <- add_ribbons(pp$htmlwidget, x = names(plot.data), ymin = pred$lwrS, ymax = pred$uprS, fillcolor = ci.color, line = list(color = "transparent"), text = sprintf(paste0("[%", y.hovertext.format, ", %", y.hovertext.format, "]"), pred$lwrS, pred$uprS), @@ -196,7 +200,8 @@ SplineWithSimultaneousConfIntervals <- function(outcome, for (i in unique(stackFits$ind)) { ind <- which(stackFits$ind == i) - pp$htmlwidget <- add_lines(pp$htmlwidget, x = stackFits$predictor[ind], y = stackFits$values[ind], + print(stackFits$predictor[ind][1:10]) + pp$htmlwidget <- add_lines(pp$htmlwidget, x = names(plot.data), y = stackFits$values[ind], line = list(color = draw.color, width = draw.weight), hoverlabel = list(font = list(color = flipStandardCharts:::autoFontColor(draw.color))), name = paste("Draw", i)) From 77bb257c615b03efe595c2c526d3b693a8473040 Mon Sep 17 00:00:00 2001 From: chschan Date: Wed, 11 Jun 2025 00:04:46 +1000 Subject: [PATCH 2/5] Use strftime instead of as.character --- R/splinewithsimultaneousconfint.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/R/splinewithsimultaneousconfint.R b/R/splinewithsimultaneousconfint.R index 4c5d349..5cc1f9c 100644 --- a/R/splinewithsimultaneousconfint.R +++ b/R/splinewithsimultaneousconfint.R @@ -169,6 +169,10 @@ SplineWithSimultaneousConfIntervals <- function(outcome, # Create plot plot.data <- pred$fit names(plot.data) <- pred$predictor + if (inherits(pred$predictor, "POSIXct")) { + cat("predictor is POSIXct") + names(plot.data) <- strftime(pred$predictor) + } cat("plot.data:\n") print(plot.data) pp <- Line(plot.data, colors = mean.color, line.thickness = mean.weight, From 94abe9d8ea9a6308ff6ca10bc4316e0b34bc6575 Mon Sep 17 00:00:00 2001 From: chschan Date: Wed, 11 Jun 2025 00:17:37 +1000 Subject: [PATCH 3/5] Undo some unnecessary changes --- R/splinewithsimultaneousconfint.R | 5 +++-- man/SplineWithSimultaneousConfIntervals.Rd | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/R/splinewithsimultaneousconfint.R b/R/splinewithsimultaneousconfint.R index 5cc1f9c..6b70034 100644 --- a/R/splinewithsimultaneousconfint.R +++ b/R/splinewithsimultaneousconfint.R @@ -48,6 +48,7 @@ SplineWithSimultaneousConfIntervals <- function(outcome, y.tick.format = NULL, x.grid.width = 1, y.hovertext.format = ".1f", + y.zero = FALSE, title = NULL, x.title = NULL, y.title = NULL, @@ -186,7 +187,7 @@ SplineWithSimultaneousConfIntervals <- function(outcome, cat("ribbon:\n") print(pred$predictor) - pp$htmlwidget <- add_ribbons(pp$htmlwidget, x = names(plot.data), + pp$htmlwidget <- add_ribbons(pp$htmlwidget, x = pred$predictor, ymin = pred$lwrS, ymax = pred$uprS, fillcolor = ci.color, line = list(color = "transparent"), text = sprintf(paste0("[%", y.hovertext.format, ", %", y.hovertext.format, "]"), pred$lwrS, pred$uprS), @@ -205,7 +206,7 @@ SplineWithSimultaneousConfIntervals <- function(outcome, { ind <- which(stackFits$ind == i) print(stackFits$predictor[ind][1:10]) - pp$htmlwidget <- add_lines(pp$htmlwidget, x = names(plot.data), y = stackFits$values[ind], + pp$htmlwidget <- add_lines(pp$htmlwidget, x = stackFits$predictor[ind], y = stackFits$values[ind], line = list(color = draw.color, width = draw.weight), hoverlabel = list(font = list(color = flipStandardCharts:::autoFontColor(draw.color))), name = paste("Draw", i)) diff --git a/man/SplineWithSimultaneousConfIntervals.Rd b/man/SplineWithSimultaneousConfIntervals.Rd index 26fad3d..2dea70b 100644 --- a/man/SplineWithSimultaneousConfIntervals.Rd +++ b/man/SplineWithSimultaneousConfIntervals.Rd @@ -21,6 +21,7 @@ SplineWithSimultaneousConfIntervals( y.tick.format = NULL, x.grid.width = 1, y.hovertext.format = ".1f", + y.zero = FALSE, title = NULL, x.title = NULL, y.title = NULL, @@ -74,6 +75,8 @@ See https://github.com/d3/d3/blob/master/API.md#number-formats-d3-format} \item{y.hovertext.format}{A string representing a d3 formatting code See https://github.com/d3/d3/blob/master/API.md#number-formats-d3-format} +\item{y.zero}{Whether the y-axis should include zero.} + \item{title}{Character; chart title.} \item{x.title}{Character, x-axis title; defaults to chart input values; From 934505727adcc0216e44a7795a295b4040b59584 Mon Sep 17 00:00:00 2001 From: chschan Date: Wed, 11 Jun 2025 00:21:18 +1000 Subject: [PATCH 4/5] Pass y.zero to Line --- R/splinewithsimultaneousconfint.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/splinewithsimultaneousconfint.R b/R/splinewithsimultaneousconfint.R index 6b70034..2e45724 100644 --- a/R/splinewithsimultaneousconfint.R +++ b/R/splinewithsimultaneousconfint.R @@ -180,7 +180,7 @@ SplineWithSimultaneousConfIntervals <- function(outcome, title = title, x.title = x.title, y.title = y.title, y.tick.format = y.tick.format, y.hovertext.format = y.hovertext.format, global.font.family = global.font.family, global.font.color = global.font.color, - title.font.size = title.font.size, x.grid.width = x.grid.width, + title.font.size = title.font.size, x.grid.width = x.grid.width, y.zero = y.zero, y.title.font.size = y.title.font.size, x.title.font.size = x.title.font.size, y.tick.font.size = y.tick.font.size, x.tick.font.size = x.tick.font.size, hovertext.font.size = hovertext.font.size, legend.show = FALSE, ...) From 0f0a038f771c29c80742a29074523ba42ea32846 Mon Sep 17 00:00:00 2001 From: chschan Date: Wed, 11 Jun 2025 00:32:45 +1000 Subject: [PATCH 5/5] Tidy up --- R/splinewithsimultaneousconfint.R | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/R/splinewithsimultaneousconfint.R b/R/splinewithsimultaneousconfint.R index 2e45724..f4c5d15 100644 --- a/R/splinewithsimultaneousconfint.R +++ b/R/splinewithsimultaneousconfint.R @@ -169,13 +169,8 @@ SplineWithSimultaneousConfIntervals <- function(outcome, # Create plot plot.data <- pred$fit - names(plot.data) <- pred$predictor - if (inherits(pred$predictor, "POSIXct")) { - cat("predictor is POSIXct") - names(plot.data) <- strftime(pred$predictor) - } - cat("plot.data:\n") - print(plot.data) + names(plot.data) <- if (inherits(pred$predictor, "POSIXct")) strftime(pred$predictor) + else pred$predictor pp <- Line(plot.data, colors = mean.color, line.thickness = mean.weight, title = title, x.title = x.title, y.title = y.title, y.tick.format = y.tick.format, y.hovertext.format = y.hovertext.format, @@ -185,8 +180,6 @@ SplineWithSimultaneousConfIntervals <- function(outcome, y.tick.font.size = y.tick.font.size, x.tick.font.size = x.tick.font.size, hovertext.font.size = hovertext.font.size, legend.show = FALSE, ...) - cat("ribbon:\n") - print(pred$predictor) pp$htmlwidget <- add_ribbons(pp$htmlwidget, x = pred$predictor, ymin = pred$lwrS, ymax = pred$uprS, fillcolor = ci.color, line = list(color = "transparent"), @@ -205,7 +198,6 @@ SplineWithSimultaneousConfIntervals <- function(outcome, for (i in unique(stackFits$ind)) { ind <- which(stackFits$ind == i) - print(stackFits$predictor[ind][1:10]) pp$htmlwidget <- add_lines(pp$htmlwidget, x = stackFits$predictor[ind], y = stackFits$values[ind], line = list(color = draw.color, width = draw.weight), hoverlabel = list(font = list(color = flipStandardCharts:::autoFontColor(draw.color))),