使用ggplot在R中进行条件绘图

时间:2014-02-27 05:35:31

标签: r ggplot2

我有一个ggplot,x轴作为载体名称,y轴作为一些值,范围从1.00到4.00 如何根据条件将颜色应用于条形:如果名称的值大于2,则使条形图为红色,否则为绿色。

我的代码到现在为止:

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有点新鲜。

1 个答案:

答案 0 :(得分: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")