簡體   English   中英

ggplot2在一張3d圖表中繪制了幾條密度線

[英]ggplot2 plot several density lines in one 3d chart

在過去的5年中,我對同一小組(100名學生)進行了智商測試。 喜歡:

2005年,傑克的智商為100,艾米的智商為99,約翰...

在2006年,傑克的智商為105,艾米的智商為95,約翰...

...

我想估算不同年份的智商密度。 並在一張圖中繪制不同年份的密度線。 這是一些數據示例。

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

我如何像下圖所示繪制它們? 在此處輸入圖片說明

在此處輸入圖片說明

上面是2D圖表。 閱讀幾年之間的趨勢非常困難,因為我必須知道紅色是2016年,黑色是2015年。3D並不困難,這就是我堅持使用3D的原因

您是否有任何理由想要制作難以閱讀的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,就像您的要求一樣。 但是,為此,您仍然需要考慮如何在年份之間進行插值(在您的情況下,這似乎是一個絕對變量)。

感謝@Anders Ellern Bilgrau他/她建議的網站,我從該網站中學到了關於ggridges的知識

我用ggridges完成我的工作。 可以從獲得幫助

https://cran.r-project.org/web/packages/ggridges/vignettes/introduction.html

library(devtools)
install_github("clauswilke/ggridges")
ggplot(dt, aes(x = value, y = year, fill =0.5-abs(0.5-..ecdf..))) +
  stat_density_ridges(geom="density_ridges_gradient",scale=1, calc_ecdf=TRUE,
                      jittered_points = T) + 
  scale_fill_viridis(name = "Tail Probability", direction = -1) 
  +theme_minimal()+
  theme(plot.title=element_text(size=17,color="black",face="bold",hjust=0.5), 
        axis.title.y = element_blank())+ 
  labs(x="...")+
  scale_y_discrete(expand = c(0.01, 0)) +   
  scale_x_continuous(breaks=seq(0,240,40),expand = c(0, 0)) 

在此處輸入圖片說明

盡管它不能完全滿足我的要求,但可以幫助分析概率形狀的變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM