You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言绘图如何将红点固定在坐标轴并让趋势线延伸至该点

要实现你需要的两个需求,仅需修改两处代码即可:

  • 生成预测用的new.data时,将Days序列的起始值从原有的min(Days)改为0,这样趋势线就会自动延伸到x=0的红点位置
  • 绘制红色点时可添加xpd = TRUE参数,确保点不会被绘图区域边界裁剪,始终固定在坐标轴位置

修改后的完整可运行代码如下:

library(dplyr)
library(lubridate)
library(tidyverse)

#dataset df1
df1 <- structure(
  list(date1 = c("2021-06-28","2021-06-28","2021-06-28","2021-06-28","2021-06-28",
                 "2021-06-28","2021-06-28","2021-06-28"),
       date2 = c("2021-04-02","2021-04-03","2021-04-08","2021-04-09","2021-04-10","2021-07-01","2021-07-02","2021-07-03"),
       Week= c("Friday","Saturday","Thursday","Friday","Saturday","Thursday","Friday","Monday"),
       DR01 = c(4,1,4,3,3,4,3,6), DR02= c(4,2,6,7,3,2,7,4),DR03= c(9,5,4,3,3,2,1,5),
       DR04 = c(5,4,3,3,6,2,1,9),DR05 = c(5,4,5,3,6,2,1,9),
       DR06 = c(2,4,3,3,5,6,7,8),DR07 = c(2,5,4,4,9,4,7,8)),
  class = "data.frame", row.names = c(NA, -8L))

#Generate graph

dmda<-"2021-07-01"

datas<-df1 %>%
  filter(date2 == ymd(dmda)) %>%
  summarize(across(starts_with("DR"), sum)) %>%
  pivot_longer(everything(), names_pattern = "DR(.+)", values_to = "val") %>%
  mutate(name = as.numeric(name))
colnames(datas)<-c("Days","Numbers")

attach(datas)
plot(Numbers ~ Days, data=datas, xlim=c(0,7), ylim=c(0,20))

model <- nls(Numbers ~ b1*Days^2+b2, data=datas, start = list(b1 = 47,b2 = 0))

# 此处修改:Days序列起始改为0
new.data <- data.frame(Days = seq(0, max(Days), len = 45))
lines(new.data$Days,predict(model,newdata = new.data))
# 此处添加xpd=TRUE,确保红点不被裁剪
points(0, coef(model)[2], col="red",pch=19,cex = 1.2, xpd = TRUE)

内容的提问来源于stack exchange,提问作者user16774617

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:54:01