【发布时间】:2017-05-22 21:41:09
【问题描述】:
首先我知道这个问题之前出现过,即:Change histogram bar colours greater than a certain value 但是尽管有那个线程,我还是遇到了一个令人困惑的问题。
所以,我有一些数据,在该数据中,我知道变量 house$PPSQM 有 4 个值大于 3000。所以我试图做的是绘制数据的直方图,其中所有低于 3000 的条形为红色,3000 以上的为灰色。我通过查看直方图知道有 2 个高于 3000 的条(为了清楚起见,4000 有 2 个值,5000 有 2 个)这是我使用的代码:
clr <- ifelse(houses$PPSQM>3000, "grey", "red")
hist(houses$PPSQM,ylim = c(0, 50) ,xlab="Cost per Sq. Meter",ylab='Frequency',col = clr)
但我遇到的问题是:如果我在 if-else 语句中说houses$PPSQM>3000,那么它会将所有条形都涂成红色......如果我说houses$PPSQM
关于如何解决这个问题有什么建议吗?
【问题讨论】:
-
嗨,Alanis,如果您可以使示例可重现,那么对您的帮助会容易得多。
-
如果没有看到您的数据就很难回答,但我怀疑问题是
clr中的颜色比直方图中的条形要多。请记住,直方图不是条形图:这些值被放入箱中,而不是单独计算。试试h <- hist(houses$PPSQM)然后看看length(clr)是否大于length(h$counts)。 -
你是对的,
lenght(clr)等于 12535...而length(h$counts)等于 11。这是其中的一个日子...现在修好了...谢谢您的帮助
标签: r