Eu quero criar um bardiagram para esses dados em R (lido em um arquivo CVS):
Nome da Métrica MétricaA MétricaB Just_X 2 10 Just_X_and_Y 3 20
para ter o seguinte diagrama:
Sou iniciante e nem sei como começar.
Eu quero criar um bardiagram para esses dados em R (lido em um arquivo CVS):
Nome da Métrica MétricaA MétricaB Just_X 2 10 Just_X_and_Y 3 20
para ter o seguinte diagrama:
Sou iniciante e nem sei como começar.
Respostas:
Suponho que você possa importar seus dados em R com read.table()
as read.csv()
funções de mão curta . Em seguida, você pode aplicar todas as funções de resumo que desejar, por exemplo table
ou mean
como abaixo:
x <- replicate(4, rnorm(100))
apply(x, 2, mean)
ou
x <- replicate(2, sample(letters[1:2], 100, rep=T))
apply(x, 2, table)
A idéia é terminar com uma matriz ou tabela para os valores de resumo que você deseja exibir.
Para a saída gráfica, observe a barplot()
função com a opção beside=TRUE
, por exemplo
barplot(matrix(c(5,3,8,9),nr=2), beside=T,
col=c("aquamarine3","coral"),
names.arg=LETTERS[1:2])
legend("topleft", c("A","B"), pch=15,
col=c("aquamarine3","coral"),
bty="n")
O space
argumento pode ser usado para adicionar um espaço extra entre barras justapostas.
Aqui versão ggplot:
library(ggplot2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20),
experiment=c("X", "X & Y")),
variable_name="metric")
ggplot(df, aes(experiment, value, fill=metric)) +
geom_bar(position="dodge")
Eu queria atualizar a resposta do professor para refletir a remodelação2.
library(ggplot2)
library(reshape2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20),
experiment=c("X", "X & Y")),
variable.name="metric")
ggplot(df, aes(experiment, value, fill=metric)) +
geom_bar(position="dodge",stat="identity")
Observe que a resposta do professor produz o erro "Erro na avaliação (expr, ambiente, anexo): objeto 'métrica' não encontrado" com reshape2 porque o reshape2 usa o nome da variável em vez do nome da variável.
Também descobri que precisava adicionar stat = "identity" à função geom_bar porque, caso contrário, apresentava "Erro: mapeando uma variável para y e também usando stat =" bin "."