2017-09-04 2 views
0

ggplot에 막 대형 차트를 플로팅하려하지만 계속 그리드 만 가져옵니다. 이것은 분명히 draw nothinghere에 대한 데모이지만, 가장 간단한 방법으로 값을 표시하는 방법을 이해하고 싶습니다. 나는 플롯을 얻을 수왜이 ggplot은 값이없는 그리드만을 표시합니까?

enter image description here

library(ggplot2) 
    testData<-data.frame(x=c("a","b","c","d","e","f"), y=c(10,6,9,28,10,17)) 
    bar <- ggplot(data=testData, aes(x=c("a","b","c","d","e","f"), y=c(10,6,9,28,10,17), fill = "#FFCC00")) 

한 가지 방법은 값이 첫 번째 막대 차트에 그려하지 않는 이유는 geom_bar

enter image description here

bar <- ggplot(data=testData, aes(x=c("a","b","c","d","e","f"), y=c(10,6,9,28,10,17), fill = "#FFCC00")) + geom_bar(stat="identity") 

어떻게 해결하는 것입니다 그것은 가장 간단한 방법입니까? +으로 플로팅하는 방법에 대한 배경은 무엇이며 무엇이라고 부릅니까?

답변

5

ggplot2 패키지를 사용하면 ggplot()을 호출하는 것은 기본 그리드를 호출하기위한 것입니다. 그래프를 그리기 전에 그래프 용지를 꺼내는 것과 같습니다. 두 경우 모두 그리드를 준비하는 것이 그래프를 플로팅하는 것과 아무 상관이 없습니다. 그것은 데이터에서를 그리드 수험 플롯과 같은 기능() 또는 HIST()를 사용하여 플롯과 동일하지의

ggplot(data=testData, aes(x=x, y=y, fill = "#FFCC00")) 

다음 명령은 첫 번째 예제에서 빈 그리드가 발생합니다 실행 이유 동시에 :

plot(x=x,y=y,data=testData) 

hist(x=x,data=testData) 

는 "+"ggplot에 우리가 첫 번째 빈 그리드의 상단에 포함시키려는 ggplot에 관한 이상의 인수가 있다는 말을 단지 방법입니다. 그래서 "+"로 구분 된 각 줄을 일반적으로 레이어라고 부릅니다. 우리는 간단한 산점도를 만들고 싶어

그래서, 우리는 그리드의 상단에 포인트를 추가 :

testData<-data.frame(x=c(1:6), y=c(10,6,9,28,10,17)) 

ggplot(data=testData,aes(x=x,y=y)) + 
    geom_point() 

출력 :

enter image description here

우리가 그에게 줄을 추가하려면 scatterplot을 사용하면 한 줄의 코드를 추가 할 수 있습니다.

ggplot(data=testData,aes(x=x,y=y)) + 
    geom_point() + 
    geom_line() 

출력 :

enter image description here

우리는 우리가 원하는 경우이 같은 레이어를 계속 추가 할 수 있습니다.

ggplot(data=testData,aes(x=x,y=y)) + 
    geom_bar(stat="identity",fill="#00BFC4") + 
    geom_point() + 
    geom_line() 

출력 :

또한 enter image description here

, 참고 그냥 그들은 당신이 (그 이후에 인쇄 된 라인 아래에있을 것이다 처음 몇 줄 IE)를 입력 순서대로 인쇄 할 수 있습니다 ggplot 호출 내에서 데이터를 여러 번 호출하지 않는 것이 좋습니다. 오류로 이어질 수 있습니다.

는 사용하지 마십시오 대신

ggplot(data=testData, aes(x=c("a","b","c","d","e","f"), 
         y=c(10,6,9,28,10,17), fill = "#FFCC00")) + 
    geom_bar(stat="identity") 

#or 

ggplot(data=testData, aes(x=testData$x, y=testData$x, fill = "#FFCC00")) + 
    geom_bar(stat="identity") 

를 사용

ggplot(data=testData, aes(x=x, y=y, fill="#FFCC00")) + 
    geom_bar(stat="identity") 

첫 번째 ggplot() 라인 내에서 호출되지 않은 데이터 프레임 (들)로부터 데이터를 플롯 할 경우, 간단하게 다음과 같이 서로 다른 데이터 프레임 것을 사용하는 "층"에 데이터 인수를 추가

ggplot(data=testData,aes(x=x,y=y)) + 
    geom_bar(stat="identity",fill="#00BFC4") + 
    geom_point(data=differentDf, aes(x=x,y=y)) + 
    geom_line(data=differentDf, aes(x=x,y=y)) 
+0

이 곳 differen 두 comboplots을 할 수 있나요 tes 부분은 두 개의 서로 다른 데이터 집합을 레이어를 통해 서로 위에 표시하도록 정의합니다. – hhh

+0

확실히. 그것은 ggplot이 가장 잘하는 것 중 하나입니다. 이 문제를 해결하기 위해 만든 위의 편집을 참조하십시오. – www

관련 문제