Eu sou novo no R e estou tentando plotar 3 histogramas no mesmo gráfico. Tudo funcionou bem, mas meu problema é que você não vê onde 2 histogramas se sobrepõem - eles parecem um pouco cortados.
Quando faço gráficos de densidade, parece perfeito: cada curva é cercada por uma linha de quadro preta e as cores parecem diferentes quando as curvas se sobrepõem.
Alguém pode me dizer se algo semelhante pode ser alcançado com os histogramas da 1ª foto? Este é o código que estou usando:
lowf0 <-read.csv (....)
mediumf0 <-read.csv (....)
highf0 <-read.csv(....)
lowf0$utt<-'low f0'
mediumf0$utt<-'medium f0'
highf0$utt<-'high f0'
histogram<-rbind(lowf0,mediumf0,highf0)
ggplot(histogram, aes(f0, fill = utt)) + geom_histogram(alpha = 0.2)
Respostas:
Seu código atual:
é dizer
ggplot
para a construção de um histograma usando todos os valores emf0
e em seguida, as barras de cor da presente único histograma de acordo com a variávelutt
.Em vez disso, o que você deseja é criar três histogramas separados, com mistura alfa para que sejam visíveis um pelo outro. Portanto, você provavelmente deseja usar três chamadas separadas para
geom_histogram
, onde cada uma obtém seu próprio quadro de dados e preenche:Aqui está um exemplo concreto com alguma saída:
que produz algo parecido com isto:
Editado para corrigir erros de digitação; você queria preencher, não cor.
fonte
scale_fill_manual()
.Usando os dados de amostra de @ joran,
observe que a posição padrão de
geom_histogram
é "pilha".veja "ajuste de posição" desta página:
docs.ggplot2.org/current/geom_histogram.html
fonte
position = 'identity'
não é apenas uma resposta mais legível, é mais agradável com gráficos mais complicados, como chamadas mistas paraaes()
eaes_string()
.scale_fill_manual()
. Esta função também pode ser usada para modificar as cores nos histogramas.fill
é um fator.Embora apenas algumas linhas sejam necessárias para plotar histogramas múltiplos / sobrepostos no ggplot2, os resultados nem sempre são satisfatórios. É necessário o uso adequado de bordas e cores para garantir que o olho possa diferenciar os histogramas .
As funções a seguir equilibram cores de borda, opacidades e gráficos de densidade sobreposta para permitir que o visualizador se diferencie entre distribuições .
Histograma único :
Histograma múltiplo :
Uso :
Basta passar seu quadro de dados para as funções acima, juntamente com os argumentos desejados:
O parâmetro extra no plot_multi_histogram é o nome da coluna que contém os rótulos da categoria.
Podemos ver isso de forma mais dramática criando um quadro de dados com muitos meios de distribuição diferentes :
Passando o quadro de dados como antes (e ampliando o gráfico usando as opções):
fonte