Por que o eixo x do meu gráfico começa em 5 em vez de no ponto mais baixo do vetor?
Pergunta
Estou tentando fazer um histograma de um vetor usando R. Quando ploto isso, o eixo x vai de 5 a 9, mas parte do histograma é anterior a 5 (o menor número é 4,414002) e parte dele édepois de 9. O mesmo vale para meu eixo y, vai de 0-5000, mas o 'stave' de altura vai um pouco acima de 5000.
Por que não começa no valor mais baixo do vetor?Lembre-se, é apenas a barra que não é longa o suficiente, o gráfico é do tamanho certo (então não é um problema com as configurações mar ou oma, tentei alterá-las, mas não ajudou)
Abaixo está o meu código
import rpy2.robjects as R
import R_functions as R_funct
csvData = (R.r['read.csv'](file='/homes/ndeklein/test.csv', head=True, sep='\t'))
hist = R.r.hist
R.r.png('/homes/ndeklein/test_intensity_hist.png', width=300, height=300)
intensityVector = csvData[0]
logIntensityVector = R.r['log10'](intensityVector)
hist(logIntensityVector, main='Intensity per feature histogram', xlab='logged intensity', ylab='frequencies of features', br=20)
R.r['dev.off']()
Editar:
Eu descobri qual é o problema e no código R ele ficaria assim:
vector = c(5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 5.67750749154535, 6.7399637450174, 6.7399637450174, 6.7399637450174, 6.7399637450174, 6.7399637450174, 6.7399637450174, 6.7399637450174, 6.7399637450174)
hist(vector, breaks=20)
Mas como o intervalo está entre 4-9 (bem, menos neste exemplo), ter 20 quebras é demais.Colocar as pausas no 6 resolve o problema.
Solução
Colocando as quebras em um número inferior (br= 6 no meu exemplo)
hist(logIntensityVector, main='Intensity per feature histogram', xlab='logged intensity', ylab='frequencies of features', br=6)
resolveu o problema.