形成堆栈条形图/网格,颜色强度在值上变化

时间:2014-07-21 18:26:30

标签: r ggplot2 raster rgraph

我正在尝试使网格看起来像堆积条形图。条形图的各个部分代表应用程序类别,x轴表示其价格等级的条形图。我希望条形图部分的颜色强度随类别中的应用程序数量而变化。我尝试使用ggplot2 geom_bar,但我无法弄清楚如何在Y轴上绘制类别。我的数据如下:

Category    No.Apps Price
Utilities   400     0
Utilities   300     1-10
Utilities   500     11-20
Utilities   200     21-30
Games       1000    0
Games       900     1-10
Games       400     11-20
Games       100     21-30
Productivity 300    0
Productivity 100    1-10
Productivity 50     11-20
Productivity 80     21-30

我希望我的图表看起来像这样:

http://i.stack.imgur.com/XEn2g.png

y轴上的类别和x轴上的价格等级。

2 个答案:

答案 0 :(得分:0)

library(ggplot2)

#making some fake data and putting it into a data.frame
price <- rnorm(n = 10000,mean = 5,sd = 2)
app <- sample(x = LETTERS[1:10],size = 10000,replace = T)
df <- data.frame(price,app)
head(df)

#now the plot
ggplot(df, aes(x=price,y=app))+
  geom_bin2d()

答案 1 :(得分:0)

这似乎接近你的图形,虽然颜色不同。

library(ggplot2)
ggplot(df, aes(x=Price,y=Category, fill=No.Apps)) + 
  geom_tile()+
  scale_fill_gradientn(colours=rev(heat.colors(10)))+
  scale_x_discrete(expand=c(0,0))+
  scale_y_discrete(expand=c(0,0))+
  coord_fixed()

注意:

  1. 使用geom_tile(...)制作块。
  2. 使用rev(heat.colors(10))创建调色板(高值为红色,低值为淡黄色)。
  3. 使用coord_fixed(...),因此块是方形的(将宽高比设置为1:1)。
  4. 使用expand=c(0,0),因此块填充整个绘图区域。