我正在按照ggplot2 wiki上的描述創建一個映射(choropleth)。除了我遇到了通過scale_fill_brewer()函數將連續值映射到多邊形填充顏色的問題之外,一切都像魅力一樣。使用ggplot2中的scale_fill_brewer()函數設置數據的斷點
This question描述了我遇到的問題。作爲答案,我的解決方法一直是預切割我的數據轉換成使用gtools quantcut()函數箱:
UPDATE:第一個例子實際上是這樣做
require(gtools) # needed for quantcut()
...
fill_factor <- quantcut(fill_continuous, q=seq(0,1,by=0.25))
ggplot(mydata) +
aes(long,lat,group=group,fill=fill_factor) +
geom_polygon() +
scale_fill_brewer(name="mybins", palette="PuOr")
正道
這工作,不過,我覺得我應該能夠跳過預切割我的數據的步驟,做這樣的事與遊選項:
ggplot(mydata) +
aes(long,lat,group=group,fill=fill_continuous) +
geom_polygon() +
scale_fill_brewer(names="mybins", palette="PuOr", breaks=quantile(fill_continuous))
但是,這是行不通的。相反,我得到一個類似的錯誤:
Continuous variable (composite score) supplied to discrete scale_brewer.
我誤解了「休息」選項的目的?還是破碎了?
由於錯誤說'scale_fill_brewer'是離散的數據,而不是連續的。 – hadley
謝謝哈德利 - 尋求答案並編寫包裝。我想我假設連續數據+休息=離散。 這是否意味着我的第一個示例(預先裁剪我的連續數據)是完成此操作的「正確」方法? – Peter
是的。圖例與軸沒有區別 - 在軸上設置中斷不會使數據離散,它只是移動刻度標記。 – hadley