Skip to contents

Visualizes the trend of personal best times for specific running distances.

Usage

plot_pbs(
  stoken,
  activity_type = "Run",
  distance_meters,
  max_activities = 500,
  date_range = NULL,
  pbs_df = NULL
)

Arguments

stoken

A valid Strava token from `rStrava::strava_oauth()`. Required unless `pbs_df` is provided.

activity_type

Type(s) of activities to search (e.g., "Run"). Default "Run".

distance_meters

Numeric vector of distances (meters) to plot PBs for (e.g., `c(1000, 5000)`). Relies on Strava's `best_efforts` data.

max_activities

Max number of recent activities to check. Default 500. Reduce for speed.

date_range

Optional. Filter activities by date `c("YYYY-MM-DD", "YYYY-MM-DD")`.

pbs_df

Optional. A pre-calculated data frame from `calculate_pbs`. If provided, `stoken` and other calculation parameters are ignored.

Value

A ggplot object showing PB trends, faceted by distance if multiple are plotted.

Details

Plots the trend of best efforts for specified distances, highlighting new PBs. Uses pre-calculated data or calls `calculate_pbs`.

Visualizes data from `calculate_pbs`. Points show best efforts; solid points mark new PBs. Y-axis is MM:SS. If `pbs_df` is not provided, calls `calculate_pbs` first (can be slow).

Examples

# 使用模拟数据示例
data(Athlytics_sample_data)
if (!is.null(athlytics_sample_pbs)) {
  p <- plot_pbs(pbs_df = athlytics_sample_pbs)
  print(p)
}
#> Generating plot...
#> `geom_line()`: Each group consists of only one observation.
#>  Do you need to adjust the group aesthetic?


# \donttest{
# 使用真实数据的示例(需要认证)
stoken <- rStrava::strava_oauth(..., cache = TRUE)
#> Error: '...' used in an incorrect context

# 绘制1k, 5k, 10k的PBs图
plot_pbs(stoken = stoken, distance_meters = c(1000, 5000, 10000))
#> Error: object 'stoken' not found

# 绘制2023年1英里和半程马拉松的PBs图
plot_pbs(stoken = stoken,
         distance_meters = c(1609, 21097),
         date_range = c("2023-01-01", "2023-12-31"))
#> Error: object 'stoken' not found
# }