我是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的教程,那也会有所帮助。
答案 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
我还强烈推荐Hadley Wickham(http://r4ds.had.co.nz/)的R for Data Science,以开始使用R。它是免费的!