Коробчатая диаграмма schmoxplot: Как вывести на печать средства и стандартные погрешности, обусловленные фактором в R?

GetType () используется для нахождения фактический тип ссылки на объект во времени выполнения. Это может отличаться от типа переменной, которая ссылается на объект из-за наследования. typeof () создает литерал Типа, который имеет точный определенный тип и определяется во время компиляции.

14
задан Dan Goldstein 16 September 2009 в 13:08
поделиться

2 ответа

Первый сюжет только что был описан в сообщении в блоге на imachordata.com . (подсказка Дэвиду Смиту на blog.revolution-computing.com ) Вы также можете прочитать соответствующую документацию от Хэдли на ggplot2 .

Вот пример кода:

library(ggplot2)
data(mpg)

#create a data frame with averages and standard deviations
 hwy.avg<-ddply(mpg, c("class", "year"), function(df)
 return(c(hwy.avg=mean(df$hwy), hwy.sd=sd(df$hwy))))

#create the barplot component
 avg.plot<-qplot(class, hwy.avg, fill=factor(year), data=hwy.avg, geom="bar", position="dodge")

#first, define the width of the dodge
dodge <- position_dodge(width=0.9)

#now add the error bars to the plot
avg.plot+geom_linerange(aes(ymax=hwy.avg+hwy.sd, ymin=hwy.avg-hwy.sd), position=dodge)+theme_bw()

В итоге это выглядит так: alt text

14
ответ дан 1 December 2019 в 08:17
поделиться

ggplot производит эстетически приятные графики, но у меня нет возможности попробовать опубликовать любой выход ggplot пока.

Пока не наступил день, вот как я делал вышеупомянутые графики. Я использую пакет графиков под названием 'gplots', чтобы получить стандартные бары ошибок (используя данные, которые я уже рассчитал). Обратите внимание, что в данном коде для каждого класса/категории предусмотрены два или более фактора. Это требует, чтобы данные поступали в виде матрицы и для команды "beside=TRUE" в функции "barplot2", чтобы не допустить стекания баров.

# Create the data (means) matrix
# Using the matrix accommodates two or more factors for each class

data.m <- matrix(c(75,34,19, 39,90,41), nrow = 2, ncol=3, byrow=TRUE,
               dimnames = list(c("Factor 1", "Factor 2"),
                                c("Class A", "Class B", "Class C")))

# Create the standard error matrix

error.m <- matrix(c(12,10,7, 4,7,3), nrow = 2, ncol = 3, byrow=TRUE)

# Join the data and s.e. matrices into a data frame

data.fr <- data.frame(data.m, error.m) 

# load library {gplots}

library(gplots)

# Plot the bar graph, with standard errors

with(data.fr,
     barplot2(data.m, beside=TRUE, axes=T, las=1, ylim = c(0,120),  
                main=" ", sub=" ", col=c("gray20",0),
                    xlab="Class", ylab="Total amount (Mean +/- s.e.)",
                plot.ci=TRUE, ci.u=data.m+error.m, ci.l=data.m-error.m, ci.lty=1))

# Now, give it a legend:

legend("topright", c("Factor 1", "Factor 2"), fill=c("gray20",0),box.lty=0)

С эстетической точки зрения это довольно просто, но, похоже, это то, что хочет видеть большинство журналов/старых профессоров.

Я бы разместил график, созданный на основе этих данных примера, но это мой первый пост на сайте. Извините. Нужно иметь возможность копировать-вставить все (после установки пакета "gplots") без проблем.

.
0
ответ дан 1 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: