R上吨X轴不再为了绘制(t X axis on R doesn't plot in orde

2019-10-23 02:28发布

使用这个数据帧:

names   x   y   MV

1   O4  -0,33   -1,2    -5,2
2   O9,5 -0,305 -1,1    -3,6
3   B0  -0,3    -1,08   -3,25
4   B0,5 -0,28  -1  -2,6
5   B1,5    -0,25   -0,9    -2,1
6   B2,5    -0,22   -0,8    -1,5
7   B3  -0,2    -0,69   -1,1
8   B6  -0,15   -0,5    -0,2
9   B8  -0,1    -0,3    0,6
10  B9,5    -0,05   -0,1    1,1
11  A0,5    0   0,01    1,5
12  A2  0,05    0,05    1,7
13  A4  0,1 0,08    1,9
14  A5  0,15    0,09    2,1
15  A7  0,2 0,1 2,4
16  A8  0,25    0,07    2,55
17  F0  0,3 0,03    2,8
18  F2  0,35    0   3,1
19  F4  0,4 -0,01   3,4
20  F8  0,5 0   4,1
21  G0  0,6 0,08    4,7
22  G6  0,7 0,23    5,2
23  K0  0,8 0,42    5,8
24  K2  0,9 0,63    6,3
25  K3,5    1   0,86    6,7
26  K4,5    1,1 1,03    7,1
27  K5,5    1,2 1,13    7,5
28  K6,5    1,3 1,2 8
29  M0  1,4 1,22    8,8

这是我的代码:

df <- read.table(file = "Pasta1.txt", sep = "\t", header = T)
star <- ggplot(data=df, aes(x=x, y=y, group=1)) +
  geom_point(alpha=1, size=5) +
  geom_text(aes(label=names),hjust=-0.4, vjust=0.8) +
  xlab("\n (B-V)0") +
  ylab("(U-B)0 \n") +
theme_bw() +
  theme( axis.title.y = element_text(face="bold", size=16),
    axis.title.x = element_text(face="bold", size=16),
    axis.text = element_text(size=12),
    legend.title =element_blank() ,
    legend.text = element_text(size = 12)) +
  theme(strip.text = element_text(size=12, face="bold"))
star + ggtitle("Diagrama Cor - Cor para Estrelas do Aglomerado Galático NGC6025 \n")

问题是:第一个10个数据点被绘制倒置10°点ploted第一,依此类推,直到11º点,然后它来恢复正常,ploting的12º,13º。

我想它是在数据帧的顺序来绘制,我争取使在Y图中的负值的方法在上面显示出来,并且底部的正数。

请问你能帮帮我吗?

Answer 1:

它看起来像问题是,你的数据不是numeric 。 由于逗号,它被读入作为character ,然后转换为一个factor

可以通过代入出逗号一段时间,然后再转换为数字的,或通过使用改变的变量数值dec的参数read.table声明该逗号用于小数点。

一个例子,在你的数据

test <- tempfile()

writeLines("names   x   y   MV
1   O4  -0,33   -1,2    -5,2
            2   O9,5 -0,305 -1,1    -3,6
            3   B0  -0,3    -1,08   -3,25c
            4   B0,5 -0,28  -1  -2,6
            5   B1,5    -0,25   -0,9    -2,1
            6   B2,5    -0,22   -0,8    -1,5
            7   B3  -0,2    -0,69   -1,1
            8   B6  -0,15   -0,5    -0,2
            9   B8  -0,1    -0,3    0,6
            10  B9,5    -0,05   -0,1    1,1
            11  A0,5    0   0,01    1,5
            12  A2  0,05    0,05    1,7
            13  A4  0,1 0,08    1,9
            14  A5  0,15    0,09    2,1
            15  A7  0,2 0,1 2,4
            16  A8  0,25    0,07    2,55
            17  F0  0,3 0,03    2,8
            18  F2  0,35    0   3,1
            19  F4  0,4 -0,01   3,4
            20  F8  0,5 0   4,1
            21  G0  0,6 0,08    4,7
            22  G6  0,7 0,23    5,2
            23  K0  0,8 0,42    5,8
            24  K2  0,9 0,63    6,3
            25  K3,5    1   0,86    6,7
            26  K4,5    1,1 1,03    7,1
            27  K5,5    1,2 1,13    7,5
            28  K6,5    1,3 1,2 8
            29  M0  1,4 1,22    8,8", test)

就在指定小数点为逗号读

df <- read.table(test, sep="", dec=",")

或转换为数值(见如何读取数据时,一些数字包含逗号作为千个分隔符? )

df2 <- read.table(test, sep="")

df2[2:4] <- lapply(df2[2:4], function(X) as.numeric(gsub(",",".", X)))


文章来源: t X axis on R doesn't plot in order
标签: r plot ggplot2