ggplot从过滤后的长格式数据中绘制出一个烂摊子

时间:2017-05-23 13:19:35

标签: r ggplot2 melt

通过以下代码,我生成了三个CO2数据系列图。其中两个看起来很好,最后一个看起来很奇怪。我不明白ggplot如何能够提出这个情节。有什么想法吗?

Good plot

Good plot

A plot I don't understand

data = read.csv('data4.csv', header = TRUE, comment.char = '#')
data = mutate(data,
    time = as.character(time),
    date = as.character(date),
    timec = chron(times = time))

dataLong = melt(data, id.vars = c('date', 'time', 'timec'))
dataLong = filter(dataLong, variable == 'co2')

ggplot(data,     aes(x = timec, y = co2))   + geom_point() + scale_x_chron(format = '%H:%M:%S')
plot(dataLong$timec, dataLong$value)
ggplot(dataLong, aes(x = timec, y = value)) + geom_point() + scale_x_chron(format = '%H:%M:%S')

1 个答案:

答案 0 :(得分:0)

问题是:value的{​​{1}}列属于dataLong类。因此,第三个图的y比例不是数字比例,而是字符串比例,并按词汇顺序排序(character)。

'a' < 'b'

从数字到字符的转换来自> class(dataLong$value) [1] "character" 函数。并非所有变量都是数字;其中一些是因素。结果是性格。

谢谢@RichardTelford!