这让我感到困惑:当我将与x
和fill
相同的变量用于geom_bar
(我知道这是多余的编码)时,fill
映射不使用。
library(ggplot2)
df <- data.frame(Points=c(1, 3, rep(5,20), rep(20,80), rep(40,35), rep(70,22), rep(100,18)))
ggplot(df, aes(fill = Points, x = Points)) +
geom_bar(width=.1) +
scale_x_log10(breaks=c(1,3,5,10,20,40,70,100))
发生了什么?!?我怀疑它必须对geom_bar
的内部工作进行某些处理,因为它正在计算y轴的..count..
变量。但这不应该影响变量Points
,不是吗?
另一件事:当我将as.character()
包裹在Points
上以达到fill
的美感时,它有效。但是然后我没有一个很好的连续色标,而是一个离散色标(这对于字符变量很有意义)。
感谢您的帮助!
答案 0 :(得分:1)
因此,如果要对条形的填充方式进行连续缩放,诀窍是设置y = 1,这样条形将在各个x位置彼此堆叠,然后调用填充。
ggplot(df, aes(x = Points)) + geom_col(aes(y=1,fill=Points))
答案 1 :(得分:1)