[R] looking for a better way to code a bar graph
hadley wickham
h.wickham at gmail.com
Fri Sep 26 17:15:55 CEST 2008
Hi Norman,
This is pretty easy in ggplot2 (if you adjust your data a little):
install.packages("ggplot2")
library(ggplot2)
days <- seq(Sys.Date(), len=100, by="1 day")
df <- data.frame(
date = rep(days, each = 3),
trt = rep(c("A", "B", "C"), 50),
price = runif(150)
)
qplot(date, price, data=df, geom="bar", stat="identity", fill=trt)
qplot(date, price, data=df, geom="bar", stat="identity", fill=trt,
position = "fill")
qplot(date, price, data=df, geom="bar", stat="identity", fill=trt,
position = "fill") + scale_fill_grey()
Hadley
On Fri, Sep 26, 2008 at 8:36 AM, Rubin, Norman <Norman.Rubin at amd.com> wrote:
> I've just used r a little, so this might be a trivial question but
>
>
>
> I have a small data file
>
> part, vs/total ,ps/total, gpgpu, date
>
> ... ... ... ... ..
>
>
>
> that contains the percent that certain features contribute to a part and
> the date the part was built
>
>
>
>
>
> I'd like to do stacked bar graphs one bar per part showing the percents
>
> and I'd like tospace the bars based on the date released
>
>
>
> I tried
>
>
>
> area <- read.csv("c:/talks/pact2008/g1.csv");
>
> dates <-strptime(as.character(area$date), "%m/%d/%Y")
>
>
>
> ## hack to figure out the amount to shift the bars
>
> l <- length(as.POSIXct(dates))
>
> diff <- as.numeric(difftime(dates[2:l], dates[1:(l-1)]))
>
> diff <- rev(diff/max(diff))
>
>
>
> colors <- gray.colors(3)
>
>
>
>
>
> data <- c(area$ps.total[1:5], area$vs.total[1:5], area$gpgpu[1:5])
>
>
>
> data <- 100*t(matrix(data, 5, 3))
>
>
>
> ## the .6 makes the bars look a little lighter, I did ths by eye
>
> barplot(data, space=diff+.6)
>
>
>
>
>
>
>
> This works giving me the graph I want, but it seems so clunky, what is a
> better way?
>
>
>
>
>
> I do get a warning
>
>
>
> Warning messages:
>
> 1: In space + width :
>
> longer object length is not a multiple of shorter object length
>
> 2: In space + width :
>
> longer object length is not a multiple of shorter object length
>
>>
>
>
>
> making me think I'm not understanding how space works. I don't
> understand how to set width, what kind of units would it be in?
>
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
http://had.co.nz/
More information about the R-help
mailing list