ggplot2多面线图的线条区域内填充了纯色,为什么?

时间:2012-05-26 07:21:56

标签: r ggplot2

我对使用facet的线图的奇怪结果有疑问。 我有不同深度(=压力)的水数据测量。数据如下表所示:

Pressure Temperature pH
0        30          8.1
1        28          8.0

我“融化”这些数据以产生:

Pressure variable    value
0        Temperature 30
1        Temperature 30
0        pH          8.1
1        pH          8.0

等等。我现在想这个:

ggplot(data.m.df, aes(x=value, y=Pressure)) +
  facet_grid(.~variable, scale = "free") +
  scale_y_reverse() +
  geom_line() +
  opts(axis.title.x=theme_blank())

它有点工作,除了线图的部分填充纯色。我不知道为什么,特别是因为如果我用y交换x并使用“variable~”它就可以正常工作。作为facet_grid公式。 weird plot

1 个答案:

答案 0 :(得分:10)

请注意应用于相同数据的geom_linegeom_path之间的差异。

library(ggplot2)

x = c(seq(1, 10, 1), seq(10, 1, -1))
y = seq(0, 19, 1)
df = data.frame(x, y)

ggplot(df, aes(x, y)) + geom_line()
ggplot(df, aes(x, y)) + geom_path() 

enter image description here

请注意df数据框中的顺序。

    x  y
1   1  0
2   2  1
3   3  2
4   4  3
5   5  4
6   6  5
7   7  6
8   8  7
9   9  8
10 10  9
11 10 10
12  9 11
13  8 12
14  7 13
15  6 14
16  5 15
17  4 16
18  3 17
19  2 18
20  1 19

geom_path按照观察顺序绘制。

geom_line按x值的顺序绘制。

当x值更接近时,效果会更明显。

x = c(seq(1, 10, .01), seq(10, 1, -.01))
y = seq(.99, 19, .01)
df = data.frame(x, y)

ggplot(df, aes(x, y)) + geom_line() 
ggplot(df, aes(x, y)) + geom_path()

enter image description here