geom_histogram的颜色

时间:2013-07-18 19:17:09

标签: r graph colors ggplot2 gradient

我想要使用geom_histogram(下面的数据)用ggplot绘制数据集。我在尝试获得渐变颜色方案时遇到问题。

  

结构(列表(UserID = c(39120L,39536L,39550L,39627L,39632L,   39709L,39971L,39988L,39990L,40062L,40065L,40065L,40066L,   40142L,40142L,40143L,40161L,40193L,40364L,40437L,40439L,   40440L,40451L,40453L,40665L,40665L,40668L,40751L,40843L,   40843L,40843L,40846L,40846L,40847L,40847L,40850L,40850L,   40884L,40884L,40884L,40896L,40900L,40902L,40903L,40905L,   40963L,40966L,40966L,40967L,40967L,40969L,40971L,40971L,   40985L,40985L,41010L,41079L,41080L,41080L,41081L,41093L,   41108L,41110L,41111L,41113L,41114L,41133L,41137L,41138L,   41140L,41161L,41162L,41182L,41186L,41260L),销售= c(0.0119,   0.0032,0.0091,0.0098,0.0086,0.0101,0.0107,0.0111,0.0085,   0.0178,0.0069,0.0055,0.0133,0.0112,0.0084,0.0141,0.0159,   0.01,0.0054,0.0129,0.011,0.0116,0.0099,0.0134,0.0046,   0.004,0.0076,0.005,0.0027,0.0037,3e-04,0.022,0.012,0.0082,   0.0108,0.0092,0.0101,0.0016,0.0082,0.0035,0.007,0.0098,   0.0146,0.0074,0.005,0.0152,0.0046,0.0032,0.0028,0,0.0179,   0.0185,0.0095,0.0401,0.0163,0.0085,0.0099,0.0064,0.0067,   0.0052,0.0191,0.0118,0.0054,0.0111,0.0065,0.0124,0.0047,   0.0111,0.0063,0.0072,0.0062,0.0091,0.0066,0.0169,0.0071   ),salesfromtarget = c(0.214285714285714,-0.673469387755102,   -0.0714285714285714,0,-0.122448979591837,0.0306122448979592,   0.0918367346938777,0.13265306122449,-0.13265306122449,0.816326530612245,   -0.295918367346939,-0.438775510204082,0.357142857142857,0.142857142857143,   -0.142857142857143,0.438775510204082,0.622448979591837,0.0204081632653062,   -0.448979591836735,0.316326530612245,0.122448979591837,0.183673469387755,   0.010204081632653,0.36734693877551,-0.530612244897959,-0.591836734693878,   -0.224489795918367,-0.489795918367347,-0.724489795918367,-0.622448979591837,   -0.969387755102041,1.24489795918367,0.224489795918367,-0.163265306122449,   0.102040816326531,-0.0612244897959184,0.0306122448979592,-0.836734693877551,   -0.163265306122449,-0.642857142857143,-0.285714285714286,0,   0.489795918367347,-0.244897959183673,-0.489795918367347,0.551020408163265,   -0.530612244897959,-0.673469387755102,-0.714285714285714,-1,   0.826530612244898,0.887755102040817,-0.0306122448979592,3.09183673469388,   0.663265306122449,-0.13265306122449,0.010204081632653,-0.346938775510204,   -0.316326530612245,-0.469387755102041,0.948979591836735,0.204081632653061,   -0.448979591836735,0.13265306122449,-0.336734693877551,0.26530612244898,   -0.520408163265306,0.13265306122449,-0.357142857142857,-0.26530612244898,   -0.36734693877551,-0.0714285714285714,-0.326530612244898,0.724489795918367,   -0.275510204081633)),。Name = c(“UserID”,“sales”,“salesfromtarget”   ),row.names = c(1L,2L,3L,4L,5L,6L,7L,8L,9L,10L,11L,   12L,13L,15L,16L,18L,19L,20L,21L,22L,23L,24L,25L,26L,   28L,29L,31L,32L,35L,36L,37L,38L,39L,41L,42L,44L,45L,   46L,47L,48L,49L,50L,51L,52L,53L,54L,56L,57L,58L,59L,   60L,61L,62L,63L,64L,65L,67L,69L,70L,72L,77L,78L,79L,   80L,81L,82L,83L,84L,85L,86L,87L,88L,89L,90L,93L),class =“data.frame”)

使用这段代码我试图使用scale_fill_brewer来获得一个梯度方案(但它不一定是这个特定的一个,它只是一个不起作用的例子)。所有的酒吧都是灰色的,理想情况下它们不会是灰色的。最好的情况我想使用scale_fill_gradient(low = "green", high = "blue")的内容(同样这对我不起作用)。我觉得我错过了ggplot2的基本功能。

require(ggplot2)
require(scales)
require(ggthemes)

ggplot(repex, aes(x = salesfromtarget)) +
geom_histogram(binwidth = .1, alpha = 0.5, colour = "white") +
scale_fill_brewer(palette = "Spectral") +
guides(fill = FALSE) +
theme_solarized() +
ggtitle("Standard Distribution of Sales") + xlab("Sales") + ylab("Frequency") +
theme(plot.title = element_text(size = 13, colour = "black", face = "bold", vjust = 1)) +
theme(axis.title.x = element_text(size = 12, colour = "black", vjust = -.005), 
      axis.title.y = element_text(size = 12, colour = "black", vjust = 0.2),
      axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_x_continuous(breaks = seq(-1.5, 1.5, by = .25),
                 limits = c(-1.5, 1.5), labels = percent) 

1 个答案:

答案 0 :(得分:4)

您需要在aes()部分中定义“fill”变量:

ggplot(repex, aes(x=salesfromtarget, fill=..x..))
    +geom_histogram(binwidth=.1)
    +scale_fill_gradient("Legend",low = "green", high = "blue")

enter image description here

由于直方图条是每个x轴值的计数,如果要使用原始x值,则应使用“ .. x .. ”。您可以使用“ .. count .. ”填充直方图计数:

ggplot(repex, aes(x=salesfromtarget, fill=..count..))
    +geom_histogram(binwidth=.1)
    +scale_fill_gradient("Legend",low = "green", high = "blue")

enter image description here