r - 如何在自动绘图中放置不同的符号

标签 r plot ggplot2

我在生存对象中使用 autoplot() 时遇到了一些麻烦。我将以下面为例

library(ggplot2)
library(ggfortify)
library(survival)
    datalung <- lung
    fitlung<- survfit(Surv(time,status) ~ sex,type = "kaplan-meier",data=datalung)
    autoplot(fitlung,conf.int=FALSE,pVal=TRUE,pX=800)+scale_color_grey()

enter image description here

在上面的示例中,性别 1 和性别 2 具有不同的灰度,只有 2 个组可以看到不同的组。

我使用的真实数据集有 9 个不同的组,很难看到具有这种灰度的差异曲线。我不能使用颜色。我正在寻找一种将符号放入不同组的方法,但我在 autoplot 中找不到此参数。

surv.linetype 有选项soliddashed,但它会改变所有具有相同模式的曲线,我不想要它.以数据为例,我想为性别1和性别2设置不同的线型

最佳答案

查看功能代码通常可以帮助我弄清楚哪些可以更改,哪些不能更改。您可以通过在控制台中运行 ggfortify:::autoplot.survfit 查看 autoplot.survfit 的代码。

仔细查看,您会看到只有 color 美学用于分组。我没有看到更改它的简单方法,但您可以轻松地按照函数中的配方来制作自己的图。虽然构建您自己的地 block 需要更多步骤,但它为您提供了很大的灵 active 。

例如,如果您想更改每个组的线和点的形状,您可以强化模型,然后构建绘图。

plot.data = fortify(fitlung, surv.connect = TRUE)

ggplot(plot.data, aes(time, surv, shape = strata)) +
    geom_step(aes(linetype = strata)) +
    geom_point(data = subset(plot.data, n.censor > 0)) +
    scale_y_continuous(labels = scales::percent)

请注意,我只知道 6 种线型;即使有更多,也很难区分。形状也好不到哪里去,尽管形状更多。

关于r - 如何在自动绘图中放置不同的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39907004/

相关文章:

r - 如何在plotly R中修复条的宽度

r - 使用 ggplot2 用两种不同颜色绘制一条线

R:将 alpha 包添加到 2d 或 3d 散点图

r - 如何在没有by子句的data.table中使用lapply

r - 如何使用R提取方括号之外的字符串?

r - 将 NA 更改为插值扁条

r - 带有格子的曲线下的颜色区域

r - 从状态转换的图形流程图

python - Pandas 绘图条顺序类别

r - ggplot2:如何交换 y 轴和右刻面带以及如何排序刻面值