You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言ggforce绘制平行集图时X轴名称丢失的解决问询

解决ggforce平行集图X轴名称缺失问题

问题出在gather_set_data函数处理后,x变量是数值型索引(1-4),未关联原始数据的分类名称。可通过以下两种方式修复:

方法一:将x转换为带标签的因子

在数据处理阶段把x转为因子,指定对应分类名称:

library(ggforce)
library(reshape2)
library(ggplot2)

data <- reshape2::melt(Titanic)
data <- gather_set_data(data, 1:4)
# 给x添加对应的分类标签
data$x <- factor(data$x, levels = 1:4, labels = c("Class", "Sex", "Age", "Survived"))

ggplot(data, aes(x, id = id, split = y, value = value)) +
  geom_parallel_sets(aes(fill = Sex), alpha = 0.3, axis.width = 0.1) +
  geom_parallel_sets_axes(axis.width = 0.1) +
  geom_parallel_sets_labels(colour = 'white')

方法二:使用scale_x_discrete手动设置轴标签

在ggplot图层中添加scale_x_discrete,指定刻度和对应标签:

library(ggforce)
library(reshape2)
library(ggplot2)

data <- reshape2::melt(Titanic)
data <- gather_set_data(data, 1:4)

ggplot(data, aes(x, id = id, split = y, value = value)) +
  geom_parallel_sets(aes(fill = Sex), alpha = 0.3, axis.width = 0.1) +
  geom_parallel_sets_axes(axis.width = 0.1) +
  geom_parallel_sets_labels(colour = 'white') +
  # 设置X轴的刻度和对应标签
  scale_x_discrete(breaks = 1:4, labels = c("Class", "Sex", "Age", "Survived"))

两种方法都能让X轴显示原始分类名称(Class、Sex、Age、Survived),与官方示例效果一致。

内容的提问来源于stack exchange,提问作者Patrik Ulvdal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 08:43:11