2016-03-04 99 views
1

問題:我想保留列的寬度我定義(0.20);不過,我想將這些欄放在更近的位置。我試圖使用position_dodge來做到這一點,但它似乎並沒有工作(我改變了position_dodge的寬度,但是我沒有看到輸出中的變化)。酒吧之間的距離(位置閃避不起作用)

數據:

SITE N  CHL   sd   se   ci 
SITE1 20 0.01037453 0.004217003 0.0009429505 0.001973618 
SITE2 20 0.01704401 0.006188691 0.0013838333 0.002896396 
SITE3 19 0.01191036 0.004188927 0.0009610057 0.002018998 

腳本:

dodge <- position_dodge(width = 0.25)#this is the width I try to change to get the columns closer, but it doesn't do it 
ggplot() + geom_bar(data=s_site2chl, aes(x=SITE, y=CHL, fill=SITE), 
     stat="identity", colour="black", width = .20, position = dodge) 
+0

我不清楚你想用position_dodge實現什麼。查看[此鏈接](http://docs.ggplot2.org/current/position_dodge.html)可能對您有所幫助。 – jazzurro

+0

我想改變小節之間的距離,使小節更接近彼此(不相互接觸,更近)。我看到了鏈接,但是我不知道我在做什麼錯誤:我定義了一個寬度,並且定義了一個位置閃避... – kumbu

+0

如果您爲'width'設置了較大的值,我認爲它應該是酒吧。 – Stibu

回答

1

要使用position_dodge()沒有幫助,因爲有沒有在你的陰謀。如果您有多個具有相同x價值的酒吧,則頭寸至關重要。然後,您需要選擇是否要將它們堆疊在彼此之上(「堆疊」),彼此相鄰(「閃避」),或讓它們彼此重疊(「身份」)。但是,您每x價值只有一個酒吧,因此位置是不相關的。

如同其他人所建議的那樣,您可以將它們放在一起使之更緊密。如果設置width = 1,酒吧會觸動,如果你選擇一個較小的值,仍然會有一定的差距:

ggplot() + geom_bar(data=s_site2chl, aes(x=SITE, y=CHL, fill=SITE), 
        stat="identity", colour="black", width = .8) 

enter image description here

你在你的評論人說,你只希望把酒吧更接近一起,但沒有讓他們更寬。我可以看到至少有兩種方法來實現這一點。其中一個就是以不同的分辨率保存劇情。上圖是590像素寬,380像素高。如果我把它存儲與寬度的一半,我得到這個:

enter image description here

第二種可能性是,你的x軸更擴大兩側。可以使用scale_x_discrete()如下:

ggplot() + geom_bar(data=s_site2chl, aes(x=SITE, y=CHL, fill=SITE), 
        stat="identity", colour="black", width = .8) + 
      scale_x_discrete(expand = c(0, 2)) 

enter image description here

expand採取兩種載體具有以下含義(從?discrete_scale):

長度爲2的數值向量,給乘法和用於擴大比例範圍的加法常數,以便數據和軸之間有一個小的差距。離散尺度的默認值是(0,0.6),連續尺度的默認值是(0.05,0)。

我設置添加劑值2(而不是默認的0.6),這增加在杆的兩側更多的空間,其結果使它們更薄。