我有一个5*
格式,可以与dataframe
一起使用。它有3个变量:ID(1:10),图像(1:24)和值(一些索引)。这是头脑:
ggplot
到目前为止,我正在使用:
ID image value
1 1 1 0.0408963431
2 2 1 0.1366366334
3 3 1 0.1250891286
4 4 1 0.6980148222
5 5 1 0.1537595064
6 6 1 0.6088030843
7 7 1 0.1618058842
8 8 1 0.0007617827
9 9 1 -0.0098789526
10 10 1 0.7994192766
11 1 2 0.0326733369
12 2 2 0.0304698831
13 3 2 0.1100861336
14 4 2 0.5145008107
15 5 2 0.1424066920
16 6 2 0.6982905393
17 7 2 0.2033906321
18 8 2 0.0506560177
19 9 2 0.0223501625
20 10 2 0.8014009445
绘制我的ggplot(NDVIdfmean_forplot, aes(x = image, y= value, group = ID)) + geom_line()
。虽然代码完成了工作,但x轴的顺序不正确。这是图像
你可以看到订单是1,10,11,12 ... 19,2,20,21 ......我想按升序绘制我的数据,所以:1,2,3,4等
我一直在尝试正确订购数据
dataframe
但我无法解决这个问题。产生相同的输出。
有什么想法吗?
答案 0 :(得分:0)
我设法解决它,所以我会发布解决方案,以防有人帮助
问题是我的图像变量不是一个因素。我用过:
NDVIdfmean_forplot$image <- factor(NDVIdfmean_forplot$image,levels=unique(as.character(NDVIdfmean_forplot$image)) )
将其转换为适当的顺序。现在图表正确
答案 1 :(得分:0)
您可以尝试两种方法:
将列图像转换为数字:
library(ggplot2)
NDVIdfmean_forplot$image <- as.numeric(NDVIdfmean_forplot$image)
ggplot(NDVIdfmean_forplot, aes(image, value, group = ID, color = ID)) +
geom_line()
将scale_x_discrete
与已排序的image
值结合使用:
ggplot(NDVIdfmean_forplot, aes(image, value, group = ID)) +
geom_path() +
scale_x_discrete(limits = as.character(sort(as.numeric(unique(NDVIdfmean_forplot$image)))))