我想用ggplot2:
创建一个这样的图
(我在这里犯了一个小错误,导致所有标签都没有显示出来。显然我希望所有标签都显示出来:))然而,我的谷歌搜索没有找到任何东西。我最接近的是来自ploconut的barNest,然而,我不喜欢生成的图形的质量。ggplot2的看起来好得多。
在理想的情况下,我希望能够做这样的事情:尺度x离散(“Axis Title”,labels=Level1+Level2+Level3)然后Level1,Level2和Level3将是qplot函数中使用的数据框的列。如果我能让这个工作,我想创建一个函数来将这种类型的功能添加到scales函数中。也许scale_x_hierarchical会更好。可以使用以下代码生成类似的数据:
data <- data.frame(
Subject = c(rep(1, 48), rep(2, 48), rep(3, 48), rep(4, 48)),
month = rep(c(rep(1, 12), rep(4, 12), rep(7, 12), rep(10, 12)), 4),
day = rep(c(rep(1, 4), rep(11, 4), rep(21, 4)), 16),
hour = rep(c(0, 6, 12, 18), 48),
data = rnorm(192))
字符串
顺便说一下,这里使用的图像是用Spotfire创建的。
2条答案
按热度按时间8ulbf1ek1#
这有点不同,但LearnR博客有一个post链接表到图,所以它看起来像这样:
的数据
chy5wohz2#
很难理解你想从这个数据表示中得到什么信息。另外请注意,在一个名为
data
的对象中有一个名为“data”的列是不好的做法。我已经将列重命名为“results”。要使用ggplot实现类似的效果,您可以使用
facet_wrap
或facet_grid
化属性来实现一般的嵌套效果:字符串
的数据
这里我使用了
facet_wrap
,并在函数中指定了我希望标签位于图的底部(strip.position = "bottom"
)。为了更接近上图,我还指定了我希望面只绘制在一行(nrow = 1
)中。theme()
中的参数控制面带文本在轴外部的位置、填充和文本大小。