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

如何在R语言中生成指定样式的3D柱状图?

在R中生成指定样式的3D柱状图

是的,R完全可以生成3D柱状图。针对你提供的数据集和参考样式(每个受试者对应两个不同颜色的3D柱子,分别展示response和duration数值),我们可以用plot3D包快速实现,以下是完整方案:

1. 安装并加载依赖包

# 首次使用时安装包
install.packages(c("plot3D", "tidyverse"))

# 加载包
library(plot3D)
library(tidyverse)

2. 准备数据集

先把宽格式数据转换为长格式,方便分组绘图:

# 你的原始数据集
dat <- tibble::tribble(
  ~subject, ~response, ~duration,
  '1', 10, 20,
  '2', -7, 30,
  '3', 5, 20,
  '4', 7, 50,
  '5', -5, 40
)

# 转换为长格式
dat_long <- dat %>%
  pivot_longer(cols = c(response, duration), 
               names_to = "metric", 
               values_to = "value")

3. 绘制3D柱状图

# 定义绘图坐标
x <- as.integer(dat_long$subject)
y <- as.integer(factor(dat_long$metric, levels = c("response", "duration")))
z <- dat_long$value

# 生成3D柱状图
bar3D(x = x, y = y, z = z,
      zlim = c(min(z) - 3, max(z) + 3), # 调整z轴范围,避免柱子贴边
      xlab = "受试者", ylab = "指标", zlab = "数值",
      col = c("#4285F4", "#EA4335")[y], # 给两个指标设置不同颜色
      border = "white", # 柱子边框设为白色,提升可读性
      space = 0.2, # 控制柱子间的间距
      ticktype = "detailed") # 显示详细刻度标签

# 添加图例
legend("topright", 
       legend = c("response", "duration"),
       fill = c("#4285F4", "#EA4335"),
       bty = "n") # 去掉图例边框

这段代码生成的图表会和你需要的样式匹配:每个受试者对应两个3D柱子,不同指标用不同颜色区分,坐标轴标签清晰,还添加了图例方便识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:40:55