在诊断图(ggplot2)的情况下,可以更改线宽以获得更平滑的线条?

时间:2018-01-08 15:35:27

标签: r ggplot2

我想在ggplot2中自定义诊断图。我试过这个:

library(ggfortify)
library(ggplot2)
model1 <- lm(len~dose*supp, data = ToothGrowth)
autoplot(model1, which = 1, label.size = 3, data = ToothGrowth, size=3, colour = "dose",
     smooth.colour = 'darkblue', smooth.linetype="dotted", smooth.linesize=3)

我得到了这张照片:

enter image description here

我更改了线条颜色和线条类型以获得更平滑的线条,但我不知道如何更改线条宽度。我试过&#34; smooth.linesize&#34;,但它没有用。有可能以某种方式改变线宽?

有人能帮助我吗?谢谢。

1 个答案:

答案 0 :(得分:1)

一个选项是在您的绘图中添加另一个图层,因为autoplot.lm未提供所需的参数smooth.linesize。第一部分生成您的情节p

p <- autoplot(model1, which = 1, label.size = 3, data = ToothGrowth, size=3, colour = "dose",
     smooth.colour = 'darkblue', smooth.linetype="dotted")

现在可以在p深处p@plots[[1]]$layers[[2]]$data深处找到平滑线的所需数据:data

这可以在调用geom_*时用作p + geom_line(data = p@plots[[1]]$layers[[2]]$data, aes(x = x, y = y), linetype = 3, col = "red", size = 3) 参数。以下代码生成下面的图表。

size

enter image description here

另一种选择是将尚未存在的美学参数p@plots[[1]]$layers[[2]]$aes_params$size <- 3 p 自己添加到绘图对象的相应图层中。我想这个选项更接近你想要实现的目标。

这可以通过

完成
<body>
    <div id ="error_frame" class="system hidden"> </div>
    <div ng-controller="objectNavCtrl" id = "content">
      <a ng-click="update()">link</a>
    </div>
    <div ng-controller="objectCtrl" >
      <div id="object_container" ng-repeat="object in objects track by object.id">
        <div>{{object.name}}</div>
      </div>
    </div>
  </body>

enter image description here

我希望这会有所帮助。