xuening 涛妹给的这幅图我不知道数据是什么,所以我也不知道是咩意思;但这种图形的优势在于能显示很多条曲线,非常节省空间(多条曲线堆叠)。举个栗子,比如你想可视化1900到2000年百年间每一年的所有电影时长的密度分布,每一条线都对应某一年的电影时长分布,你会发现,早年间的电影时长集中在10分钟、20分钟附近(数字都是我瞎编的),而到了90年代,电影时长开始向2小时附近聚集。这种左右推移的波浪线很有艺术效果,也能很快说明问题。

这种图的缺陷也来自于它的优势:堆叠。因为有堆叠,所以一定会有下面的线挡住上面的线的情况,信息展示不完整。但这也不是大问题,因为我们看密度曲线,通常最关心的是密度的波峰,波峰通常不容易被挡住,所以一眼看去,很容易知道密度聚集的位置随着另一个变量(如时间)的变化。

    yihui 如果是这样的话 横轴是时间 纵轴是电影时长是不是就能看出来了……
    或者 横轴是时间 纵轴是对应那一年所有电影时长的箱子图
    因为波峰对应的基本是中位数 所以很清楚就看出来

    所以我觉得这种图除非是分布形状(跟密度有关)出现了变化 才有意义吧

      我觉得这个图很炫, 但找个足够有意思的数据就有点难了....
      要有横纵坐标的差异, 再比较分布才有意义...(拿着图找数据有点揪心)

        xuening 雪姨犀利!你说的一点也没有错,把密度曲线替换为简单的散点图或者箱线图基本上都能表达同样的信息。问题有二:

        1. 曲线加阴影填充更有艺术效果,用散点图或箱线图就感受不到“秋山万点盆门西”或者“神奈川冲浪里”的效果了。

          神奈川冲浪里

        2. 如果是散点图,则需要考虑点的重叠问题(overplotting),拿电影时长来说,可能大多数电影都在2小时附近,这样会有很多点聚集在同一个坐标处,导致看不出来那里到底有多少部电影;解决办法可以是把点随机稍微扰动位置(jitter),或者换成蜂窝图(hexbin)。如果是箱线图,当箱子太多的时候,每个箱子只能被压得很扁,也许几乎会变成一条线,可能会看不清上下四分位数和中位数在哪里;而且箱线图的概括度太高,如果是双峰或多峰的分布,箱线图就表现不出来了,密度曲线则没有这个问题。

        此处应该 @ 闫晗,但我不知道她是否有论坛账号。应该让她写文章的时候同时试一下散点图和箱线图,你去跟她讲一下,召唤她来批折子。

        dawei_lang 拿图找数据的确是逆行,有些揪心。也就是传说中的拿锤子找钉子。

          yihui 这图猛一看还以为是神笔马良……暴露年龄了……

          高涛师兄放的图怎么实现的坐标轴label 在中间?

          我发现包里的example例子(如下)坐标轴名称都跑到最边上了,困扰,应该咋把他们居中呢?求助。。

            yihui 此图确实有艺术效果 我没仔细看一开始以为涛妹把大兴安岭整上来了

              jianqiao 这是个好问题。不过高涛师兄只是个搬运工。要是你自己研究不出来,就到编辑部去吼闫晗师姐一嗓子,要是她也不知道答案,建议新开一个 R 语言版块帖子;如果还是没有答案,那就上 Github 去问作者吧。

                xuening 是啊,这图就是jitter思想的美好体现,可以拉长看变化,视觉比较震撼
                jianqiao 这图是我在twitter上随便找的个好看吓人的图,其实包我都没下载? 他这图应该是几个图facet拼在一块的

                Lukas Lundström‏ @lukstroem Jul 23
                #JoyPlot of estimated parameter densities from thermal heating models fitted with @mcmc_stan, plotted with #ggjoy.

                更详细的可以看vignettes

                yihui 我可以仿照真实数据伪造一些数据,昨天做出来图,给同事看了看,感觉还是挺有意思的。

                  请问这种图是怎么做到的啊,有范,

                    suguke 先可以看vignettes 了解基本用法。进一步具体如何做出更漂亮的图,需要业务数据、配色和想象力,锅和菜已准备好,料需要自己来调

                      基础绘图函数仿一个,展示的是每年生物量的逐月变化规律。