删除置信区间虚线并修改图例

Remove dotted confidence interval lines and amend legend

如何从图中删除置信区间虚线?

对于图例,为什么第 2 行是虚线而第 1 行是实线?有没有办法制作两条实线?我不确定这段代码的作用 - lty=1:2, cex=0.8

我在下面附上了我的一个数据集和相应的命令。谢谢!

> km2 <- survfit(Surv(times_start, times_end, type="interval2")~ 1)
> summary(km2)
Call: survfit(formula = Surv(times_start, times_end, type = "interval2") ~ 
    1)

    time n.risk n.event survival std.err lower 95% CI upper 95% CI
    1.31  284.0    2.04    0.993 0.00743       0.9782        1.000
    2.06  282.0    1.03    0.989 0.00856       0.9724        1.000
    2.81  280.9    4.18    0.974 0.01770       0.9395        1.000
    3.56  276.7    2.10    0.967 0.01977       0.9278        1.000
    4.31  274.7    8.42    0.937 0.03557       0.8659        1.000
    5.06  266.2    2.11    0.930 0.03678       0.8556        1.000
    5.81  264.1   13.79    0.881 0.05659       0.7642        1.000
    6.38  250.3    4.24    0.867 0.05838       0.7440        1.000
    7.12  246.1    9.55    0.833 0.06455       0.6940        1.000
    7.88  236.5    7.43    0.807 0.06785       0.6577        0.990
    8.62  229.1    3.18    0.796 0.06866       0.6432        0.984
    9.38  225.9    9.55    0.762 0.07262       0.5963        0.974
   10.12  216.4    4.24    0.747 0.07355       0.5769        0.967
   10.88  212.1   18.03    0.683 0.08015       0.4883        0.957
   11.62  194.1    2.12    0.676 0.08017       0.4793        0.953
   12.56  192.0    8.68    0.645 0.08074       0.4415        0.944
   13.31  183.3    3.33    0.634 0.08069       0.4274        0.940
   14.06  180.0   13.67    0.586 0.08082       0.3690        0.929
   14.81  166.3    2.34    0.577 0.08058       0.3595        0.927
   15.56  164.0   10.33    0.541 0.07952       0.3176        0.921
   16.31  153.6    4.35    0.526 0.07886       0.3005        0.920
   17.06  149.3    3.32    0.514 0.07831       0.2875        0.919
   17.81  146.0    3.89    0.500 0.07761       0.2724        0.919
   18.56  142.1    2.25    0.492 0.07718       0.2638        0.919
   19.31  139.8    5.37    0.473 0.07605       0.2435        0.921
   20.06  134.5    3.36    0.462 0.07530       0.2309        0.923
   20.81  131.1    9.03    0.430 0.07291       0.1983        0.932
   21.56  122.1    5.54    0.410 0.07128       0.1790        0.941
   23.81  116.5   19.40    0.342 0.06341       0.1182        0.990
   24.56   97.1   24.24    0.257 0.05029       0.0575        1.000
 5013.31   72.9   72.88    0.000 0.00000           NA           NA

> plot(km, xmax=50, xlab="Time", ylab="Log cumulative hazard", col="blue", fun="cloglog")
> lines(km2, xlab="Time", ylab="Log cumulative hazard", col="red", fun="cloglog")
> legend("topleft", legend=c("Line 1", "Line 2"), col=c("red", "blue"), lty=1:2, cex=0.8)

我不确定您使用的是哪个数据,但我使用 lung 完成了此操作(在执行 library(survival) 之后应该可用):

km2 <- survfit(Surv(time, status) ~ 1, data = lung)

plot(km2, xmax=50, xlab="Time", 
     ylab="Log cumulative hazard", 
     col="blue", fun="cloglog", conf.int = FALSE)

因此对于您的示例,您应该能够将 conf.int = FALSE 添加到 plot 函数以删除置信区间?

代码中的 lty=1:2 表示一条线是实线 (1),另一条线是虚线 (2)。我相信 solid 是默认的,所以如果你希望两者都是 solid,你应该删除 lty=1:2