首先我知道这个问题出现过,即:Change histogram bar colours greater than a certain value 但尽管如此,我还是遇到了一个令人困惑的问题。
所以,我有一些数据,在这些数据中我知道变量容器$ PPSQM有4个值大于3000.所以我想要做的是绘制数据的直方图,所有条形都低于3000是红色和3000以上的灰色。我知道从直方图中看到有2个高于3000的条(为了清晰起见,有4个值在4000和2在5000)这里是我使用的代码:
clr <- ifelse(houses$PPSQM>3000, "grey", "red")
hist(houses$PPSQM,ylim = c(0, 50) ,xlab="Cost per Sq. Meter",ylab='Frequency',col = clr)
但我遇到的问题是:如果我说房子$ PPSQM&gt; 3000,在if-else语句中,那么它会将所有条纹着色为红色...如果我说房子$ PPSQM <3000,那么它是把所有的酒吧着色为灰色!?
关于我如何解决此问题的任何建议?
答案 0 :(得分:1)
我认为您需要通过直方图中的中断进行着色,而不是通过数据中的值进行着色。试试这个:
h <- hist(houses$PPSQM)
clr <- ifelse(h$breaks > 3000, "red", "grey")
hist(houses$PPSQM, ylim = c(0, 50), xlab = "Cost per Sq.Meter",
ylab = 'Frequency', col = clr)
您可能需要使用breaks
参数(请参阅?hist
)来了解您的需求。您可能还想使用>= 3000
。