r - ggplot几何点,修改文本

标签 r ggplot2 pca

我正在尝试使用 R stat 模块 prcomp 和 ggplot2 执行 pca 分析,示例数据如下所示。对于每种汽车模型,到目前为止,我能够使用下面给出的代码生成三列数据。

df:

> head(car.df)
   honda_1_smp honda_2_smp honda_3_smp audi_1_smp audi_2_smp audi_3_smp merc_1_smp merc_2_smp
s1    0.000289    0.000000    0.076095   0.056965   0.030314   0.000000   0.000000   0.028548
s2    1.588724    1.678821    0.795915   0.552910   0.503845   0.248782   0.201806   2.324172
s3    0.067802    0.068452    0.082904   0.014259   0.038896   0.044144   0.003634   0.167235
s4    0.000000    0.000000    0.000000   0.000000   0.000000   0.008724   0.000000   0.000000
s5    0.822612    1.137569    0.008302   0.025600   0.000000   0.000000   0.000000   0.000000
s6    0.025091    0.096847    0.000000   0.031416   0.024999   0.000000   0.012987   0.000000

代码:

carpca = prcomp(t(car.df), center=T)
summary(carpca)
car12 = data.frame(PC1=carpca$x[,1], PC2= carpca$x[,2], type=rownames(carpca$x))
ggplot(car12, aes(x=PC1 , y=PC2 , col=type)) +
  geom_point() + geom_text(aes(label = type), hjust=0, vjust=0) +
  xlab("PC1 89%") + ylab("PC2 77%") + ggtitle("car")

情节enter image description here

问题

如何将我的所有复制标题分组为绘图和图例中的一种颜色和形状。 含义:每辆本田汽车都将具有相同的颜色和形状,与奥迪和 Merc 类似。

最佳答案

我将使用正则表达式 (gsub) 来删除“type”属性中的复制 ID。

car12 = data.frame(PC1=carpca$x[,1], PC2= carpca$x[,2], type=gsub("_.*$", "", rownames(carpca$x)))
ggplot(car12, aes(x=PC1 , y=PC2 , col=type)) +
  geom_point() + geom_text(aes(label = type), hjust=0, vjust=0) +
  xlab("PC1 89%") + ylab("PC2 77%") + ggtitle("car")

enter image description here

关于r - ggplot几何点,修改文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45684012/

相关文章:

r - 使用 x/y 之外的美学时出现 ggmap 错误

r - 替换列表元素(避免全局分配)

R:在基于多列的数据框中使用排序功能

r - 如何限制密度图和创建的级别数?

machine-learning - 为什么PCA会降低Logistic回归的性能?

python - 如何使用 scikit 学习具有新值的 inverse_transform

r - 如何为R中的模型构建一个大的正则公式?

r - override.aes 与列表参数的命名向量

r - 在 ggplot2 和其他 R 图形中创建新的形状调色板

python - Scikit-learn (sklearn) PCA 在稀疏矩阵上抛出类型错误