在 R 中用 Points = Levels 或 Rownames 作图

Plotting in R with Points = Levels or Rownames

我正在 R 数据集 mtcars 中绘制 mpg ~ wt,我希望将点替换为汽车模型的首字母 (rowname),或者在点旁边添加带有 rowname 的图例。

我不知道如何为第一个想法编码,而我在第二个想法上得到了重叠的标签。有没有办法只用汽车型号的首字母标记?

剥离颜色,并进行其他装饰,想法如下:

plot(mpg ~ wt, data = mtcars); text(wt, mpg, row.names(mtcars))

抱歉丑陋...顺便说一句,我尝试使用 ggplot2...同样的问题...

用 rowname initial 替换点背后的想法来自 Harold Henderson 关于回归主题的论文:

我会用你的简称创建一个新变量。为了这个例子,我取了每个行名的第一个字母,但显然有重叠,所以你需要手动指定一个“图例”列:

mtcars$legend <- substring(row.names(mtcars), 1, 1)

然后,只需添加 legend 作为 pch 参数:

plot(mpg ~ wt, data = mtcars, pch = legend)

说句题外话,美国车的油耗真的没有太大提升!