如何在R中打印堆叠排序的带状打印

如何在R中打印堆叠排序的带状打印,r,ggplot2,R,Ggplot2,我想创建一个堆叠排序的带状图,如下所示 data\u orange这里有一种使用geom\u ribbon的方法,您可以对其进行操作以获得所需的结果。它需要对数据进行一些重新格式化: df2 <- data.frame(x=c(2000,2001,2002,2003,2004,2000,2001,2002,2003,2004,2000,2001,2002,2003,2004,2000,2001,2002,2003,2004), y=c(0.16,0.10,0.05,0,0,0.17,0.

我想创建一个堆叠排序的带状图,如下所示


data\u orange这里有一种使用
geom\u ribbon
的方法,您可以对其进行操作以获得所需的结果。它需要对数据进行一些重新格式化:

df2 <- data.frame(x=c(2000,2001,2002,2003,2004,2000,2001,2002,2003,2004,2000,2001,2002,2003,2004,2000,2001,2002,2003,2004), y=c(0.16,0.10,0.05,0,0,0.17,0.16,0.14,0.13,0.12,0,0.01,0.04,0.08,0.12,0.36,0.32,0.26,0.19,0.09), group=c("orange","orange","orange","orange","orange","lightblue","lightblue","lightblue","lightblue","lightblue","blue","blue","blue","blue","blue","red","red","red","red","red"))

> df2
      x    y     group
1  2000 0.16    orange
2  2001 0.10    orange
3  2002 0.05    orange
4  2003 0.00    orange
5  2004 0.00    orange
6  2000 0.17 lightblue
7  2001 0.16 lightblue
8  2002 0.14 lightblue
9  2003 0.13 lightblue
10 2004 0.12 lightblue
11 2000 0.00      blue
12 2001 0.01      blue
13 2002 0.04      blue
14 2003 0.08      blue
15 2004 0.12      blue
16 2000 0.36       red
17 2001 0.32       red
18 2002 0.26       red
19 2003 0.19       red
20 2004 0.09       red

[提问者添加数据后,很明显,下面的解决方案不适合数据类型的图表,但将答案留在此处,以防有人寻找sankey图。]

尽管有更漂亮的选项(例如
networkD3
),但制作功能区打印最简单的方法是使用
sankey
软件包。下面是
https://cran.r-project.org/web/packages/sankey/sankey.pdf

edges <- read.table(stringsAsFactors = FALSE, textConnection(
" get_deps get_description
get_deps parse_deps
get_deps %||%
get_deps drop_internal
get_description pkg_from_filename
parse_deps str_trim
cran_file get_pkg_type
cran_file r_minor_version
download_urls split_pkg_names_versions
download_urls cran_file
pkg_download dir_exists
pkg_download download_urls
pkg_download filename_from_url
pkg_download try_download
restore pkg_download
restore drop_missing_deps
restore install_order
restore get_deps
split_pkg_names_versions data_frame
"))
此代码生成绘图:

pkgsnap_sankey <- make_sankey(edges = edges)
sankey(pkgsnap_sankey)

pkgsnap_sankey这里有一种使用
geom_ribbon
的方法,您可以对其进行操作以获得所需的结果。它需要对数据进行一些重新格式化:

df2 <- data.frame(x=c(2000,2001,2002,2003,2004,2000,2001,2002,2003,2004,2000,2001,2002,2003,2004,2000,2001,2002,2003,2004), y=c(0.16,0.10,0.05,0,0,0.17,0.16,0.14,0.13,0.12,0,0.01,0.04,0.08,0.12,0.36,0.32,0.26,0.19,0.09), group=c("orange","orange","orange","orange","orange","lightblue","lightblue","lightblue","lightblue","lightblue","blue","blue","blue","blue","blue","red","red","red","red","red"))

> df2
      x    y     group
1  2000 0.16    orange
2  2001 0.10    orange
3  2002 0.05    orange
4  2003 0.00    orange
5  2004 0.00    orange
6  2000 0.17 lightblue
7  2001 0.16 lightblue
8  2002 0.14 lightblue
9  2003 0.13 lightblue
10 2004 0.12 lightblue
11 2000 0.00      blue
12 2001 0.01      blue
13 2002 0.04      blue
14 2003 0.08      blue
15 2004 0.12      blue
16 2000 0.36       red
17 2001 0.32       red
18 2002 0.26       red
19 2003 0.19       red
20 2004 0.09       red

[提问者添加数据后,很明显,下面的解决方案不适合数据类型的图表,但将答案留在此处,以防有人寻找sankey图。]

尽管有更漂亮的选项(例如
networkD3
),但制作功能区打印最简单的方法是使用
sankey
软件包。下面是
https://cran.r-project.org/web/packages/sankey/sankey.pdf

edges <- read.table(stringsAsFactors = FALSE, textConnection(
" get_deps get_description
get_deps parse_deps
get_deps %||%
get_deps drop_internal
get_description pkg_from_filename
parse_deps str_trim
cran_file get_pkg_type
cran_file r_minor_version
download_urls split_pkg_names_versions
download_urls cran_file
pkg_download dir_exists
pkg_download download_urls
pkg_download filename_from_url
pkg_download try_download
restore pkg_download
restore drop_missing_deps
restore install_order
restore get_deps
split_pkg_names_versions data_frame
"))
此代码生成绘图:

pkgsnap_sankey <- make_sankey(edges = edges)
sankey(pkgsnap_sankey)

pkgsnap_sankey Hi-Kaung,你能发布你的数据框(或它的子集)以使其可复制吗,也许可以使用
dput
,并向我们展示你的图形是什么样子的?@我只在excel中有它,但想为r studio复制它。我还把数据放在每种颜色上面都有一个唯一的数据框。您在下面显示的图形看起来不一样。Hi Kaung,您可以发布您的数据帧(或其子集)以使其可复制(可能使用
dput
),并向我们显示您的图形的外观吗?@我只在excel中有它,但想为r studio复制它。我还把数据放在每种颜色上面都有一个唯一的数据框。下面显示的图形看起来不一样。我将尝试操作参数,看看它是否有效。谢谢您的开始!在第一个图中,ymin和ymax参数中的“v”是什么?我将尝试操纵该参数,看看它是否有效谢谢您的开始!在第一个图中,ymin和ymax参数中的“v”是什么?