使用ggplot2将点与线组合

时间:2023-02-09 17:00:08

I would like to plot a time series that look like this:

我想绘制一个如下所示的时间序列:

使用ggplot2将点与线组合

what I plot with:

我的情节:

qplot(Jahr, Wert, data=tu, group = Geschlecht, color = Altersgr) + facet_grid(Geschlecht ~ Land)

My data looks like this:

我的数据如下所示:

  Land   Altersgr Geschlecht Jahr  Wert
1   DE    < 20 J.          m 2000  13.0
2   DE  20-<65 J.          m 2000  25.7
3   DE     65+ J.          m 2000  70.1
4   DE  65-<80 J.          m 2000  44.2
5   DE     80+ J.          m 2000 213.5
6   BB    < 20 J.          m 2000  26.8

Everything is fine so far. But I have to connect the corresponding points (same color) with a line. I couldn't figure out how to do that. If I use geom_line() I got this result:

到目前为止一切都很好。但我必须用一条线连接相应的点(相同的颜色)。我无法弄清楚如何做到这一点。如果我使用geom_line()我得到了这个结果:

使用ggplot2将点与线组合

Which is not what I want... I just have the feeling I overlook something...

这不是我想要的......我只是觉得我忽略了什么......

Any suggestions? Thanks for y'all help.

有什么建议么?谢谢你们的帮助。

2 个解决方案

#1


29  

You may find that using the `group' aes will help you get the result you want. For example:

您可能会发现使用“group”aes将帮助您获得所需的结果。例如:

tu <- expand.grid(Land       = gl(2, 1, labels = c("DE", "BB")),
                  Altersgr   = gl(5, 1, labels = letters[1:5]),
                  Geschlecht = gl(2, 1, labels = c('m', 'w')),
                  Jahr       = 2000:2009)

set.seed(42)
tu$Wert <- unclass(tu$Altersgr) * 200 + rnorm(200, 0, 10)

ggplot(tu, aes(x = Jahr, y = Wert, color = Altersgr, group = Altersgr)) + 
  geom_point() + geom_line() + 
  facet_grid(Geschlecht ~ Land)

Which produces the plot found here:

这产生了这里的情节:

使用ggplot2将点与线组合

#2


11  

The following example using the iris dataset works fine:

以下使用iris数据集的示例工作正常:

dat = melt(subset(iris, select = c("Sepal.Length","Sepal.Width", "Species")),
      id.vars = "Species")
ggplot(aes(x = 1:nrow(iris), y = value, color = variable), data = dat) +  
      geom_point() + geom_line()

使用ggplot2将点与线组合

#1


29  

You may find that using the `group' aes will help you get the result you want. For example:

您可能会发现使用“group”aes将帮助您获得所需的结果。例如:

tu <- expand.grid(Land       = gl(2, 1, labels = c("DE", "BB")),
                  Altersgr   = gl(5, 1, labels = letters[1:5]),
                  Geschlecht = gl(2, 1, labels = c('m', 'w')),
                  Jahr       = 2000:2009)

set.seed(42)
tu$Wert <- unclass(tu$Altersgr) * 200 + rnorm(200, 0, 10)

ggplot(tu, aes(x = Jahr, y = Wert, color = Altersgr, group = Altersgr)) + 
  geom_point() + geom_line() + 
  facet_grid(Geschlecht ~ Land)

Which produces the plot found here:

这产生了这里的情节:

使用ggplot2将点与线组合

#2


11  

The following example using the iris dataset works fine:

以下使用iris数据集的示例工作正常:

dat = melt(subset(iris, select = c("Sepal.Length","Sepal.Width", "Species")),
      id.vars = "Species")
ggplot(aes(x = 1:nrow(iris), y = value, color = variable), data = dat) +  
      geom_point() + geom_line()

使用ggplot2将点与线组合