ggplot2中的折线图,带有一些分类变量和阴影

时间:2018-05-15 08:30:43

标签: r ggplot2

首先,我道歉,因为我一直试图通过将其分成小部分来解决这个问题(请参阅123)。然而,在合并所有这些时我完全陷入困境。为了复制它并简化再现性,您可以download the original data here

在R中加载它们后,就是结构:

var svg = SVG.get('mysvg');var draw = svg.doc(); draw.polyline()....

那么,我想要什么?我想使用以下条件在ggplot2中构建折线图:

  • X轴表示变量> str(data_example2) 'data.frame': 252 obs. of 4 variables: $ Groups : Factor w/ 6 levels "Group1","Group2",..: 1 1 1 1 1 1 1 2 2 2 ... $ Y_values: Factor w/ 126 levels "C if I1I2P3P4M1M2",..: 63 95 1 115 123 112 114 48 17 67 ... $ Units : Factor w/ 2 levels "Uni1","Uni2": 1 1 1 1 1 1 1 1 1 1 ... $ X_value : num 1 0.35 0.93 0.73 0.95 0.32 0.88 0.13 0.93 0.84 ...
  • Y轴表示变量X_value。正如您在变量Y_value中看到的那样,我们有两个组(UnitsUni1),每个组由126个观察组成。更重要的是,每个单位的126个观测值由126个因子组成。保持这些Uni2的顺序是非常重要的,因此在折线图中,左上角Y值应为Y_values,左下角应为{{1} }}
  • 我想跟踪两行,I1 if I2CP3P4M1M2I1I2CP3 if P4M1M2一行。
  • 我想使用变量Uni1中表示的因子对背景进行着色,可能使用Uni2,但不表示矩形的轮廓并为6个组中的每个组保留不同的颜色。

最终图表应该是这样的,但每个Groups的阴影。 enter image description here

1 个答案:

答案 0 :(得分:3)

希望这可以提供帮助,它并不完美但可以让您更接近您的需求:

<audio id="audio" controls="controls">
  <source id="source">
</audio>
<br>
<button id="set_src">set src</button>

使用library(readr) library(ggplot2) y_val_levels <- unique(df$Y_values)

geom_ribbon

使用ggplot(df, aes(x = factor(Y_values, levels = y_val_levels, ordered = TRUE))) + geom_ribbon(aes(ymin = -Inf, ymax = Inf, fill = Groups, group = Groups), alpha = .2) + geom_line(aes(y = X_value, color = Units, group = Units)) + geom_point(aes(y = X_value, color = Units)) + scale_x_discrete('Bayesian combination') + coord_flip() + theme_minimal() + theme(axis.text.y = element_text(size = 5))

geom_rect

(注意,较暗的切片是由ggplot(df, aes(x = factor(Y_values, levels = y_val_levels, ordered = TRUE))) + geom_rect(aes(xmin = as.integer(factor(Y_values, levels = y_val_levels, ordered = TRUE)) - .5, xmax = as.integer(factor(Y_values, levels = y_val_levels, ordered = TRUE)) + .5, ymin = -Inf, ymax = Inf, fill = Groups, group = Groups), alpha = .2) + geom_line(aes(y = X_value, color = Units, group = Units)) + geom_point(aes(y = X_value, color = Units)) + scale_x_discrete('Bayesian combination') + coord_flip() + theme_minimal() + theme(axis.text.y = element_text(size = 5))

中的重复值引起的

reprex package(v0.2.0)创建于2018-05-15。