首页 > 解决方案 > ggplot2 在一个 3d 图表中绘制多条密度线

问题描述

我对同一组(100 名学生)进行了超过 5 年的 IQ 测试。喜欢:

2005年,杰克的智商是100,艾米的智商是99,约翰...

2006年,杰克的智商是105,艾米的智商是95,约翰...

...

我想估计不同年份的智商密度。并在一张图表中绘制不同年份的密度线。这是一些数据示例。

year2005<-rnorm(100,100,2)
year2006<-rnorm(100,98,1)
year2006<-rnorm(100,101,4)

我怎样才能像下面的图表一样绘制它们? 在此处输入图像描述

在此处输入图像描述

上面是二维图表。很难看懂年份之间的趋势,因为我必须知道红色是 2016 年,黑色是 2015 年。而且 3D 没有困难,这就是我坚持 3D 的原因

标签: rggplot2plotly

解决方案


你有什么理由想要制作一个难以阅读的 3D 绘图而不是这样的东西吗?

library("ggplot2")

n <- 100
year2005<-rnorm(n,100,2)
year2006<-rnorm(n,98,1)
year2007<-rnorm(n,101,4)

dt <- data.frame(year = rep(c("2005", "2006", "2007"), each = n),
                 value = c(year2005, year2006, year2007))

ggplot(dt, aes(value, fill = year, colour = year)) +
  geom_density(alpha = 0.1)

在此处输入图像描述

在此处查看更多示例。

即使您坚持像您展示的那样使用 3D 情节,您如何建议在年份之间进行插值?

编辑

是一个非常相关的堆栈溢出帖子。我知道这不是 3D,就像您要求的那样。但为了这样做,您仍然需要考虑如何在年份之间进行插值(在您的情况下这似乎是一个分类变量)。


推荐阅读