2014-02-27 85 views
0

我有一個ggplot,其中x軸爲載體名稱,y軸爲1.00至4.00之間的某些值。 如何根據條件將顏色應用於條形:如果名稱大於2使酒吧紅色其他綠色。使用ggplot在R中進行條件繪圖

我的代碼到目前爲止是:

ggplot(plotdf,aes(x=dft1.Carrier_Name,y=newvar$nn))+geom_bar(stat='identity')+coord_flip() 

我試着用scale_fill_color和

col = ifelse(y > 2,'red','green') 

頭(plotdf)

dft1.Carrier_Name newvar.nn 

1    9E 2.7077740 

2    AA 2.8831927 

3    AQ 0.5384615 

4    AS 1.4156001 

5    B6 1.6344452 

6    CO 1.2403880 

,但沒有運氣到現在!請幫忙。我有點新R.

+0

應該有一些其他的方式,對我來說,我會在y軸值和fill = this.variable – Ananta

+0

上做出另一個變量與該條件。你可以舉一個例子相同..將它與我給col = ifelse .. – user2946704

+0

你可以發佈你的數據頭嗎?用'dput(頭(plotdf,10))' – Ananta

回答

3

編輯以包括實際數據

df=structure(list(dft1.Carrier_Name = structure(1:10, .Label = c("9E", "AA", "AQ", "AS", "B6", "CO", "DL", "EV", "F9", "FL", "HA", "MQ", "NW", "OH", "OO", "UA", "US", "WN", "XE", "YV"), class = "factor"), newvar.nn = c(2.70777398096168, 2.88319267298743, 0.538461538461538, 1.41560005823881, 1.63444523206062, 1.24038799819068, 1.50753101690302, 1.79132139356678, 0.31640943171613, 0.854465691444643)), .Names = c("dft1.Carrier_Name", "newvar.nn"), row.names = c(NA, 10L), class = "data.frame") 

df$dummy<-ifelse(df$newvar.nn>2,T,F) 
ggplot(df,aes(dft1.Carrier_Name, newvar.nn, fill=dummy))+geom_bar(stat="identity") 

答案試試這個在您的數據幀,我DF這裏創建,因爲你沒有提供

x<-c("a","b","c","d") 
df<-data.frame(x=x,z=1:4) 
df$dummy<-ifelse(df$z<=2,T,F) 
ggplot(df,aes(x, y, fill=dummy))+geom_bar(stat="identity")