Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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
R ggplot2线图虚线和箭头_R_Ggplot2 - Fatal编程技术网

R ggplot2线图虚线和箭头

R ggplot2线图虚线和箭头,r,ggplot2,R,Ggplot2,我正在尝试创建一个线条图。 我想获得一个由线连接的点图。 我希望根据方法(MET)使用不同的线型(虚线或非虚线),根据变量(Var)使用不同的颜色线。我观察了4次(MD):cd,15,30,45 我想添加一个从左到右的箭头 这是我的数据库: > gra id MD val MET Var 1 1 cd 0.000000 1-KM LRT_DM 2 2 cd 0.000000 CIF LRT_DM 3 3 15 14.74000

我正在尝试创建一个线条图。 我想获得一个由线连接的点图。 我希望根据方法(MET)使用不同的线型(虚线或非虚线),根据变量(Var)使用不同的颜色线。我观察了4次(MD):cd,15,30,45

我想添加一个从左到右的箭头

这是我的数据库:

> gra
   id MD        val  MET      Var
1   1 cd   0.000000 1-KM   LRT_DM
2   2 cd   0.000000  CIF   LRT_DM
3   3 15  14.740000 1-KM   LRT_DM
4   4 15  17.050000  CIF   LRT_DM
5   5 30  34.740000 1-KM   LRT_DM
6   6 30  35.230000  CIF   LRT_DM
7   7 45  55.790000 1-KM   LRT_DM
8   8 45  54.550000  CIF   LRT_DM
9   1 cd   0.000000 1-KM  LRT_HTN
10  2 cd   0.000000  CIF  LRT_HTN
11  3 15   6.321839 1-KM  LRT_HTN
12  4 15   6.024096  CIF  LRT_HTN
13  5 30  13.793103 1-KM  LRT_HTN
14  6 30  12.650602  CIF  LRT_HTN
15  7 45  36.781609 1-KM  LRT_HTN
16  8 45  37.951807  CIF  LRT_HTN
17  1 cd   0.000000 1-KM  LGIT_DM
18  2 cd   0.000000  CIF  LGIT_DM
19  3 15  16.270784 1-KM  LGIT_DM
20  4 15  16.206483  CIF  LGIT_DM
21  5 30  33.847981 1-KM  LGIT_DM
22  6 30  33.253301  CIF  LGIT_DM
23  7 45  50.831354 1-KM  LGIT_DM
24  8 45  50.060024  CIF  LGIT_DM
25  1 cd   0.000000 1-KM LGIT_HTN
26  2 cd   0.000000  CIF LGIT_HTN
27  3 15   5.714286 1-KM LGIT_HTN
28  4 15   5.714286  CIF LGIT_HTN
29  5 30  12.380952 1-KM LGIT_HTN
30  6 30  12.380952  CIF LGIT_HTN
31  7 45  36.190476 1-KM LGIT_HTN
32  8 45  36.190476  CIF LGIT_HTN
33  1 cd   0.000000 1-KM  LGITHTN
34  2 cd   0.000000  CIF  LGITHTN
35  3 15  15.217391 1-KM  LGITHTN
36  4 15  15.217391  CIF  LGITHTN
37  5 30  45.652174 1-KM  LGITHTN
38  6 30  45.652174  CIF  LGITHTN
39  7 45 117.391304 1-KM  LGITHTN
40  8 45 117.391304  CIF  LGITHTN
41  1 cd   0.000000 1-KM  LGUT_DM
42  2 cd   0.000000  CIF  LGUT_DM
43  3 15  16.470588 1-KM  LGUT_DM
44  4 15  16.867470  CIF  LGUT_DM
45  5 30  34.117647 1-KM  LGUT_DM
46  6 30  33.734940  CIF  LGUT_DM
47  7 45  51.764706 1-KM  LGUT_DM
48  8 45  50.602410  CIF  LGUT_DM
49  1 cd   0.000000 1-KM LGUT_HTN
50  2 cd   0.000000  CIF LGUT_HTN
51  3 15   5.714286 1-KM LGUT_HTN
52  4 15   5.714286  CIF LGUT_HTN
53  5 30  12.380952 1-KM LGUT_HTN
54  6 30  12.380952  CIF LGUT_HTN
55  7 45  36.190476 1-KM LGUT_HTN
56  8 45  36.190476  CIF LGUT_HTN
这是我的密码:

library(ggplot2)
library(grid)
gra$MD<-factor(gra$MD, levels=c("cd", "15", "30", "45"))
gra$MET<-factor(gra$MET, levels=c("1-KM", "CIF"))
gra$Var<-factor(gra$Var, levels=c("LRT_DM", "LRT_HTN","LGIT_DM",    "LGIT_HTN", "LGITHTN",  "LGUT_DM"   ,"LGUT_HTN"))

ggplot(data=gra, aes(x = gra$MD, y = gra$val, colour = gra$Var)) +geom_line(arrow = arrow())+geom_point()
但它不起作用


谢谢

只需将
线型
映射到
MET

您的主要问题是,您正在尝试为离散的X比例创建线图。如果您仍然希望将“cd”保留为x轴上的标签,可以执行以下操作

ggplot(gra, aes(x = as.integer(MD), y = val, colour = Var, linetype = MET)) +
  geom_line(arrow = arrow()) +
  geom_point() +
  scale_x_continuous(labels = levels(gra$MD))

ggplot的第一条规则是不需要在所有映射中指定数据帧<代码>aes(x=MD,y=val,color=Var,…)就足够了。请修改ggplot2语法与我们使用的R语法的不同之处。aes中没有直接指定变量内容。您应该在它的位置上有一个不带引号的列名。关于您的第一个问题,您为什么使用箭头功能?谢谢!这太完美了!
ggplot(gra, aes(x = as.integer(MD), y = val, colour = Var, linetype = MET)) +
  geom_line(arrow = arrow()) +
  geom_point() +
  scale_x_continuous(labels = levels(gra$MD))