ggplot을 사용하여 크기 조정에 흥미로운 문제가 발생했습니다. 기본 선형 눈금을 사용하여 그래프를 잘 그릴 수있는 데이터 집합이 있지만 scale_y_log10()을 사용하면 숫자가 줄어 듭니다. 다음은 몇 가지 예제 코드와 두 장의 그림입니다. 선형 스케일의 최대 값은 ~ 700이며 로그 스케일링의 값은 10^8입니다. 전체 데이터 세트는 길이가 ~ 8000 개의 항목 일 뿐이므로 무언가가 옳지 않다는 것을 보여줍니다.ggplot scale_y_log10() 문제
이 문제는 내 데이터 집합과 비닝의 구조와 관련이 있다고 생각합니다.이 오류는 '다이아몬드'와 같은 일반적인 데이터 집합에 복제 할 수 없습니다. 그러나 나는 최선의 방법으로 문제를 해결할 수 있을지 확신하지 못하고있다.
감사 자크의 CP
편집 :
example_1 = ggplot(diamonds, aes(x=clarity, fill=cut)) +
geom_bar() + scale_y_log10(); print(example_1)
#data.melt is the name of my dataset
> ggplot(data.melt, aes(name, fill= Library)) + geom_bar()
> ggplot(data.melt, aes(name, fill= Library)) + geom_bar() + scale_y_log10()
> length(data.melt$name)
[1] 8003
: bdamarest이 같은 다이아몬드 데이터 세트의 규모의 문제를 재현 할 수 있습니다
여기 몇 가지 예제 데이터가 있습니다. 문제가 발생했다고 생각합니다. 원래 녹은 데이터 세트는 ~ 10^8 행이었을 수 있습니다. 어쩌면 행 번호가 통계에 사용되고 있습니까?
> head(data.melt)
Library name group
221938 AB Arthrofactin glycopeptide
235087 AB Putisolvin cyclic peptide
235090 AB Putisolvin cyclic peptide
222125 AB Arthrofactin glycopeptide
311468 AB Triostin cyclic depsipeptide
92249 AB CDA lipopeptide
> dput(head(test2))
structure(list(Library = c("AB", "AB", "AB", "AB", "AB", "AB"
), name = c("Arthrofactin", "Putisolvin", "Putisolvin", "Arthrofactin",
"Triostin", "CDA"), group = c("glycopeptide", "cyclic peptide",
"cyclic peptide", "glycopeptide", "cyclic depsipeptide", "lipopeptide"
)), .Names = c("Library", "name", "group"), row.names = c(221938L,
235087L, 235090L, 222125L, 311468L, 92249L), class = "data.frame")
UPDATE :
행 번호는 문제가되지 않습니다. 여기서 동일한 데이터를 동일한 AES는 X 축을 이용하여 그래프 색상을 채우고 스케일링 전적으로 정확된다
> ggplot(data.melt, aes(name, fill= name)) + geom_bar()
> ggplot(data.melt, aes(name, fill= name)) + geom_bar() + scale_y_log10()
> length(data.melt$name)
[1] 8003
브라이언에게 감사드립니다. 자세한 설명을 부탁드립니다. geom_bar (position = "dodge")를 사용할 수도 있습니다 (Winston Chang의 답변 예) – zach
여기에서 일어나는 일에 대해 좀 더 통찰력을주기 위해 누적 막 대형 차트는 대개 개수 합계와 같은 막대 높이를 제공합니다. 그러나 sum (log (counts))은 log (product (counts))와 같습니다. 다시 말해, 카운트를 함께 곱한 것처럼 막대 높이를 볼 수 있습니다. – Brian