R语言ggparcoord平行坐标图自定义列选择及图例数值显示问题
问题1:非连续列选择方法
ggparcoord的columns参数支持传入任意索引向量或者列名字符串向量,不需要必须是连续序列:
- 按索引选择:如果目标列的索引分别为1、3、4、5、7、8、9(仅示例,按需调整),直接写
columns = c(1,3,4,5,7,8,9)即可 - 按列名选择(更稳妥,不受数据集列顺序变化影响):直接传入目标变量名的字符向量:
columns = c("mpg", "cylinders", "displacement", "horsepower", "weight", "acceleration", "year")
问题2:图例不显示origin数值的修复
你当前代码的问题出在:origin字段本身是数值型,未提前转为因子的情况下,levels(Auto.df$origin)的返回值为NULL,相当于你给scale_color_discrete传入了空的标签参数,导致图例无数值显示。
有两种修复方案:
方案1:提前将origin转为因子存入数据集(推荐)
library(GGally) # 提前处理origin为因子,levels直接对应原始数值1/2/3 Auto.df$origin <- factor(Auto.df$origin, levels = c(1,2,3)) parcoord = ggparcoord(Auto.df, columns = c("mpg", "cylinders", "displacement", "horsepower", "weight", "acceleration", "year"), mapping = aes(color = origin), title = "Complete Auto Data") + scale_color_discrete(name = "origin") print(parcoord)
方案2:直接在scale层指定标签
如果不想修改原数据集,直接手动指定图例标签即可:
library(GGally) parcoord = ggparcoord(Auto.df, columns = c("mpg", "cylinders", "displacement", "horsepower", "weight", "acceleration", "year"), mapping = aes(color = as.factor(origin)), title = "Complete Auto Data") + scale_color_discrete(name = "origin", labels = c("1", "2", "3")) print(parcoord)
内容的提问来源于stack exchange,提问作者The Pointer
相关产品推荐
相关产品推荐

