Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ggplot2-R打印数据帧_R_Dataframe_Ggplot2_Graph - Fatal编程技术网

使用ggplot2-R打印数据帧

使用ggplot2-R打印数据帧,r,dataframe,ggplot2,graph,R,Dataframe,Ggplot2,Graph,我正在尝试使用以下数据框创建一个图形。它有10个观测值和25个变量(其中一个变量-ID-只是不同观测值的ID列) 'data.frame': 10 obs. of 25 variables: $ NDVI_mean : num 0.0607 0.0552 0.5811 0.7676 0.0328 ... $ NDVI_sd : num 0.0881 0.0298 0.1644 0.0937 0.0292 ... $ NDVI_mean.1 : num 0.0211

我正在尝试使用以下数据框创建一个图形。它有10个观测值和25个变量(其中一个变量-ID-只是不同观测值的ID列)

'data.frame':    10 obs. of  25 variables:
 $ NDVI_mean   : num  0.0607 0.0552 0.5811 0.7676 0.0328 ...
 $ NDVI_sd     : num  0.0881 0.0298 0.1644 0.0937 0.0292 ...
 $ NDVI_mean.1 : num  0.0211 0.0549 0.1375 0.1207 0.024 ...
 $ NDVI_sd.1   : num  0.0111 0.0195 0.0227 0.0701 0.0197 ...
 $ NDVI_mean.2 : num  0.0703 0.0715 0.6832 0.769 0.0418 ...
 $ NDVI_sd.2   : num  0.0938 0.0298 0.1601 0.0674 0.0402 ...
 $ NDVI_mean.3 : num  0.0636 0.0552 0.6829 0.732 0.0292 ...
 $ NDVI_sd.3   : num  0.0912 0.0222 0.1613 0.1102 0.0355 ...
 $ NDVI_mean.4 : num  0.092 0.0781 0.6947 0.5256 0.056 ...
 $ NDVI_sd.4   : num  0.0879 0.0211 0.158 0.0686 0.0328 ...
 $ NDVI_mean.5 : num  0.1047 0.091 0.4251 0.3573 0.0722 ...
 $ NDVI_sd.5   : num  0.0441 0.013 0.0585 0.0368 0.0156 ...
 $ NDVI_mean.6 : num  0.0547 0.0654 0.5912 0.6098 0.0404 ...
 $ NDVI_sd.6   : num  0.0874 0.0195 0.2143 0.0975 0.0287 ...
 $ NDVI_mean.7 : num  0.1047 0.0882 0.6914 0.6532 0.0689 ...
 $ NDVI_sd.7   : num  0.0843 0.0177 0.1553 0.0653 0.0299 ...
 $ NDVI_mean.8 : num  0.0859 0.071 0.6905 0.6866 0.0556 ...
 $ NDVI_sd.8   : num  0.0809 0.018 0.1624 0.0866 0.0311 ...
 $ NDVI_mean.9 : num  0.0949 0.1204 0.1434 0.2849 0.1231 ...
 $ NDVI_sd.9   : num  0.00951 0.00719 0.01228 0.03483 0.01023 ...
 $ NDVI_mean.10: num  0.0854 0.0752 0.6712 0.7326 0.0628 ...
 $ NDVI_sd.10  : num  0.0789 0.0212 0.1471 0.0951 0.0326 ...
 $ NDVI_mean.11: num  0.0942 0.0986 0.6434 0.7741 0.0899 ...
 $ NDVI_sd.11  : num  0.0735 0.0188 0.1299 0.0765 0.0277 ...
 $ ID          : int  1 2 3 4 5 6 7 8 9 10

我想创建一个具有以下特征的图表:

X轴应为不同的NDVI_平均值变量(NDVI_平均值-NDVI_平均值.1-NDVI_平均值.2-等)

Y轴应该是这些变量的值

+

我希望图表包含10条线,对应于10个观察值

我是ggplot2的新手。我已经用这段代码创建了一些图形,但这不是我想要的

ggplot2(NDVIdf)+geom_lines(aes(x=NDVI_mean, y=ID))
编辑

dput的输出(NDVIdf)


您的数据是宽格式的,但
ggplot
要求您首先将其转换为长格式。也就是说,每个测量值每个观测值应该有一行。在您的情况下,您应该有一个12*2*10行的数据框,三列分别为:观测值(1-10)、统计值(平均值1、标准差2等)和值

您可以使用
tidyr
gather
功能轻松地将数据重新格式化为长格式:

library(tidyr)

NDVIdf_forplot <- gather(NDVIdf, key = statistic, value = value, -ID)
ggplot(NDVIdf_forplot, aes(x = statistic, y = value) + geom_line()
而且,如果您想对不同的观察结果进行不同的着色并添加图例,您可以使用颜色美学:

ggplot(NDVIdf_forplot, aes(x = statistic, y = value, group = ID, colour = ID)) + 
    geom_line()

您的数据是宽格式的,但
ggplot
要求您首先将其转换为长格式。也就是说,每个测量值每个观测值应该有一行。在您的情况下,您应该有一个12*2*10行的数据框,三列分别为:观测值(1-10)、统计值(平均值1、标准差2等)和值

您可以使用
tidyr
gather
功能轻松地将数据重新格式化为长格式:

library(tidyr)

NDVIdf_forplot <- gather(NDVIdf, key = statistic, value = value, -ID)
ggplot(NDVIdf_forplot, aes(x = statistic, y = value) + geom_line()
而且,如果您想对不同的观察结果进行不同的着色并添加图例,您可以使用颜色美学:

ggplot(NDVIdf_forplot, aes(x = statistic, y = value, group = ID, colour = ID)) + 
    geom_line()

请给我们
dput(df)
的输出,以便我们绘制您的数据。用数据框的名称替换
df
。我已经用信息更新了问题。请给我们
dput(df)的输出
这样我们可以绘制您的数据。用数据框的名称替换
df
。我已经用信息更新了问题。嗨,谢谢你的回答。我正在尝试实现它,但软件包tidyr的安装似乎不起作用。我也尝试过安装tidyverse,但在末尾显示了一条错误消息。我无法安装如果你在这里找不到解决方案,也许值得再问一个问题。也就是说,如果你能安装它,你可以通过
reforme2
melt
功能达到同样的效果。嗨@Eumenedies,我有一个与这个问题中发布的问题非常相似的问题。唯一不同的是是因为我无法正确安排我的数据。你能看一下吗?ps:我不想编辑这个问题,因为它太长了,新的答案可能对其他人有帮助。谢谢你的回复。我正在尝试实现它,但安装程序包tidyr似乎不起作用。我还尝试安装tidyverse但结尾处显示了一条错误消息,如果没有任何上下文,我也无能为力。如果你在这里找不到解决方案,可能值得再问一个问题。也就是说,如果你能安装
reformae2
melt
功能,你可以达到同样的效果。嗨@Eumenedies,我有一个非常类似的问题我想问这个问题。唯一不同的是我无法正确安排我的数据。你能看一下吗?ps:我不想编辑这个问题,因为它太长了,新的答案可能对其他人有帮助