2017-08-17 60 views
0

我想刪除我的boxplot右側的額外空間。我一直無法找到解決方案。R ggplot(代碼如下)試圖刪除BoxPlot右側的額外空間

x軸上的字母代表不同的因素。在數據集中,我有A,B,C,D,OH88119和NA。 NA代表缺失的數據。是否有可能導致空的空間出現?

YEAR LOC ROW BLOCK PLOT RATING R_Source QTL.SOURCE 
2 2017 Unit2 1 1 6302 6 A A 
3 2017 Unit2 1 1 6305 4 C C 
5 2017 Unit2 2 1 6331 4 C C 
6 2017 Unit2 2 1 6332 4 C C 
7 2017 Unit2 2 1 6333 4 B B 
12 2017 Unit2 4 1 6368 5 D D 
13 2017 Unit2 4 1 6369 3 A A 
14 2017 Unit2 4 1 6370 5 D D 
16 2017 Unit2 5 1 6374 5 A A 
18 2017 Unit2 5 1 6378 4 B B 
19 2017 Unit2 6 1 6404 4 D D 
20 2017 Unit2 6 1 6405 5 C C 
21 2017 Unit2 6 1 6406 6 D D 
23 2017 Unit2 6 1 6408 4 D D 
24 2017 Unit2 7 1 6409 3 A A 
25 2017 Unit2 7 1 6410 na D D 
26 2017 Unit2 7 1 6411 7 A A 
31 2017 Unit2 8 1 6442 8 D D 
32 2017 Unit2 8 1 6443 4 B B 
33 2017 Unit2 9 1 6445 6 B B 
34 2017 Unit2 9 1 6446 6 C C 
36 2017 Unit2 9 1 6450 4 A A 
39 2017 Unit2 10 1 6478 4 A A 
41 2017 Unit2 10 1 6480 4 B B 
42 2017 Unit2 11 1 6482 7 D D 
43 2017 Unit2 11 1 6483 3 A A 
44 2017 Unit2 11 1 6484 9 B B 
45 2017 Unit2 12 1 6512 4 A A 
47 2017 Unit2 12 1 6514 6 C C 
49 2017 Unit2 12 1 6516 6 B B 
51 2017 Unit2 13 1 6518 5 C C 
52 2017 Unit2 13 1 6519 7 B B 
53 2017 Unit2 13 1 6520 7 B B 
54 2017 Unit2 13 1 6521 4 B B 
56 2017 Unit2 14 1 6549 NA D D 
57 2017 Unit2 14 1 6550 6 A A 
59 2017 Unit2 14 1 6552 5 NA SA 
61 2017 Unit2 1 2 6308 4 A A 
178 2017 Unit2 4 1 6371 9 OH88119 NA 
179 2017 Unit2 9 1 6448 9 OH88119 NA 
180 2017 Unit2 4 2 6365 7 OH88119 NA 
181 2017 Unit2 5 2 6381 9 OH88119 NA 
182 2017 Unit2 3 3 6349 5 OH88119 NA 
183 2017 Unit2 4 3 6359 7 OH88119 NA 

謝謝你的時間,我真的很感激。

下面是我的代碼:

BC1S3boxplot <- ggplot(BC1S3, aes(R_Source,DISEASERATING)) 
BC1S3plot <- BC1S3boxplot + theme_bw()+ 
geom_boxplot(fill=c("red","green","blue","purple","yellow"))+ 
labs(x=expression(Sample~Source),y=expression(Horsfall-Barrat~Score), 
title=expression(italic(X)~field~BC1S3~vs~X))+ 
scale_x_discrete(limits=c("A","B","C","D","OH88119"))+ 
coord_cartesian(ylim = c(1,8))+ 
theme(axis.text.y=element_text(size=10),axis.text.x=element_text(size = 10), 
axis.title=element_text(size=10),title=element_text(size=10)) 
BC1S3plot 

箱形圖在這裏

Boxplot

marco's code

+1

嘗試'ggplot(na.omit(BC1S3),AES ...' 「空的空間」 可能是由你所提到的港定居引起爲了提供一個準確的答案。您需要向我們展示您的'BC1S3'數據 –

+0

我附加了一小段數據。我還想補充一點,這個數據是從一個原始數據集中進行子集化的,這個數據集有10個因子(A,HA,B,HB, C,HC ...等)在子集化後仍然顯示出我使用str(BC1S3)時的因子,但實際上它們不出現在數據集中 –

+0

@SRivero讓我知道如果我仍然不清楚。謝謝! –

回答

0

你的代碼工作正常圖像。請看下圖:

df <- read.table(text=' 
ID YEAR LOC ROW BLOCK PLOT RATING R_Source QTL.SOURCE 
2 2017 Unit2 1 1 6302 6 A A 
3 2017 Unit2 1 1 6305 4 C C 
5 2017 Unit2 2 1 6331 4 C C 
6 2017 Unit2 2 1 6332 4 C C 
7 2017 Unit2 2 1 6333 4 B B 
12 2017 Unit2 4 1 6368 5 D D 
13 2017 Unit2 4 1 6369 3 A A 
14 2017 Unit2 4 1 6370 5 D D 
16 2017 Unit2 5 1 6374 5 A A 
18 2017 Unit2 5 1 6378 4 B B 
19 2017 Unit2 6 1 6404 4 D D 
20 2017 Unit2 6 1 6405 5 C C 
21 2017 Unit2 6 1 6406 6 D D 
23 2017 Unit2 6 1 6408 4 D D 
24 2017 Unit2 7 1 6409 3 A A 
25 2017 Unit2 7 1 6410 NA D D 
26 2017 Unit2 7 1 6411 7 A A 
31 2017 Unit2 8 1 6442 8 D D 
32 2017 Unit2 8 1 6443 4 B B 
33 2017 Unit2 9 1 6445 6 B B 
34 2017 Unit2 9 1 6446 6 C C 
36 2017 Unit2 9 1 6450 4 A A 
39 2017 Unit2 10 1 6478 4 A A 
41 2017 Unit2 10 1 6480 4 B B 
42 2017 Unit2 11 1 6482 7 D D 
43 2017 Unit2 11 1 6483 3 A A 
44 2017 Unit2 11 1 6484 9 B B 
45 2017 Unit2 12 1 6512 4 A A 
47 2017 Unit2 12 1 6514 6 C C 
49 2017 Unit2 12 1 6516 6 B B 
51 2017 Unit2 13 1 6518 5 C C 
52 2017 Unit2 13 1 6519 7 B B 
53 2017 Unit2 13 1 6520 7 B B 
54 2017 Unit2 13 1 6521 4 B B 
56 2017 Unit2 14 1 6549 NA D D 
57 2017 Unit2 14 1 6550 6 A A 
59 2017 Unit2 14 1 6552 5 NA SA 
61 2017 Unit2 1 2 6308 4 A A 
178 2017 Unit2 4 1 6371 9 OH88119 NA 
179 2017 Unit2 9 1 6448 9 OH88119 NA 
180 2017 Unit2 4 2 6365 7 OH88119 NA 
181 2017 Unit2 5 2 6381 9 OH88119 NA 
182 2017 Unit2 3 3 6349 5 OH88119 NA 
183 2017 Unit2 4 3 6359 7 OH88119 NA 
', header=T) 

BC1S3boxplot <- ggplot(df, aes(x=R_Source, y=RATING)) 
BC1S3plot <- BC1S3boxplot + geom_boxplot(aes(fill=R_Source)) + 
labs(x=expression(Sample~Source),y=expression(Horsfall-Barrat~Score), 
title=expression(italic(X)~field~BC1S3~vs~X))+ 
scale_x_discrete(limits=c("A","B","C","D","OH88119"))+ 
coord_cartesian(ylim = c(1,10))+ 
theme(axis.text.y=element_text(size=10),axis.text.x=element_text(size = 10), 
axis.title=element_text(size=10),title=element_text(size=10))+theme_bw() 

enter image description here

+0

這可能是那些未使用的因子水平。在運行代碼之前,嘗試'df $ R_Source < - droplevels(df $ R_Source)''。 –

+0

@MarcoSandri我複製了你的代碼,並替換了我的數據集的DF我沒有得到它的工作。我會將圖像添加到頂部。 –

+0

@MarcoSandri ok讓我重新檢查我的代碼。在我的第一張圖下面,我附上了圖片。謝謝你的幫助! –