如何使用汽车软件包版本3在scatterplot()中使用图例参数

时间:2018-10-18 14:40:29

标签: r plot scatter

我是R的新手,他试图通过Robert Kabacoff出色的“ R in Action”中的一些例子进行研究。

他利用汽车包装制作了一个散点图。在尝试下面的示例时,我发现我收到警告,并且情节与书中的内容不符:

library(car)

scatterplot(mpg ~ wt | cyl, data=mtcars, lwd=2, span=0.75, 
            main="Scatter Plot of MPG vs. Weight by # Cylinders", 
            xlab="Weight of Car (lbs / 1000)", 
            ylab="Miles Per Gallon", legend.plot=TRUE, id.method="identify", 
            labels=row.names(mtcars), boxplot="xy")

经过一番挖掘,我发现car包已更新至版本3,而本书使用的是版本2。显然,大多数car函数的参数输入已完全更改。

我确实在https://cran.r-project.org/web/packages/car/car.pdf上找到了有关它的文档,但是我无法完全了解所有参数的工作原理。

通过以下代码,我可以使绘图正常工作

scatterplot(mpg ~ wt | cyl, data = mtcars, pch=c(1,2,3), 
            smooth = list(smoother=loessLine, span = .75, lty.smooth=1), 
            main = "Scatter Plot of MPG vs. Weight by # Cylinders", 
            xlab = "Weight of Car (lbs/1000)", ylab = "Miles per Gallon", 
            legend = c(title="cyl", coords="topleft"), 
            id = list(method="identify"),
            showlabels = names(row.names(mtcars)), regLine=c(method=lm, lty=1))

但是我似乎无法完全遵循如何使用新参数,尤其是图例。我似乎无法通过坐标绘制图例,只有在使用coords="topleft"coords="bottom"类型的参数的情况下,它才能发挥作用。

谁能解释在汽车包装版本3中如何使用scatterplot()中的Legend参数?具体如何在特定坐标内以及在绘图区域之外进行绘制?

如果任何人都可以将我指向不是版本2的教程,那也会有所帮助。

1 个答案:

答案 0 :(得分:1)

通常,我发现ggplot比基本的plot函数要容易得多。不过,您确实需要将cyl变量设置为一个因子。

ggplot(data = mtcars, aes(x = wt, y = mpg, color = as.factor(cyl), shape = as.factor(cyl))) +
 geom_point() + # plots the scatter plot
 geom_smooth(method = "lm", se = F) + # plots the linear model
 geom_smooth(se = F) + # plots the loess model
 theme_minimal() # changes some of the formatting

enter image description here

我还强烈推荐Hadley Wickham(http://r4ds.had.co.nz/)的R for Data Science,以开始使用R。它是免费的!