나는 모든 csv 파일과 출력 그래프를 취할 수있는 R Shiny 프로그램을 만들고 있습니다. csv를 업로드하는 사용자는 데이터가 어떻게 표시되는지에 대한 몇 가지 가이드 라인을 가지고 있지만 너무 엄격하지 않기를 바랍니다.단일 플롯에서 여러 줄을 그래프로 표시하는 방법 ggplot2?
저는 현재 ggplot2를 사용하여 비교를 위해 하나의 플롯에서 동일한 데이터 세트의 여러 라인을 그래프로 표시하려고합니다.
(데이터가 1000 개 이상의 행이 같은 간체) 나는 현재이 같은 모습을 업로드하고 데이터 :
Date Hamburgers Salads Sodas Fries
12-01 4 4 3 2
12-02 1 7 3 9
12-03 22 24 45 34
12-04 23 44 46 22
내가 출력 X 축에 시간을 (이 그래프를 시도하고를 사용자가 사이드 바를 통해 이것을 선택합니다. 아무 축이나 선택할 수 있기 때문에 시간이 가장 중요합니다). Y 축의 경우, 4 개의 선을 다르게 표시하여 각 변수를 시간의 경과에 따라 플로팅합니다.
모든 '사용자가 입력하고 그래프로 표시 할 열을 선택했습니다.'하지만 간단하게하기 위해 대부분 하드 코딩되어 있다고 가정 할 수 있습니다 (Y 변수가 실제로 입력됩니다.
이output$plotLine <- renderPlot({
p <- ggplot(data, aes_string(x=X, y=Y), environment = environment())
p <- p + geom_point(size = 3)
p <- p + geom_line(aes(group=1))
print(p)
})
이이 라인 중 하나 플롯,하지만 난 어떻게 다른 사람을 플롯하는 아무 생각이 : $ y를, 등 내 구현은)
내가 데이터를 그래프로 시도 내 코드의 일부입니다 같은 줄거리에서. 나는 aes 함수에서 'group'을 사용하는 것에 대해 읽었지만, 이것은 현재 데이터 세트에없는 분류자를 갖는 것에 달려있다.
reshape2 패키지에서 melt() 함수를 살펴 봤지만 다중 회선 문제와이 프로젝트의 큰 의미 모두에 도움이 될지 모르므로 사용자는 csv의 업로드 형식에 대한 엄격한 규칙을 준수해야합니다.)
도움이 될 것입니다.
은'우리는 대부분의 경우 그 가정 할 수 있습니다, 이것은 하드 코딩되어 있습니다 (그래서 Y 변수는 실제로 구현시 $ y 등으로 입력됩니다)'? 이 변수는 "Y"변수로 여러 개의 가능한 열이있는 것과 어떻게 일치합니까? 나는 당신이 한발 뒤로 물러나서 입력 데이터를 쉽게 플롯 할 수있는 형태로 재구성하고 싶다고 생각한다. "csv에 대한 엄격한 규칙이 없다"는 의미는 무엇입니까? 정의가 있어야합니다. 어떻게 날짜 열을 파싱 할 것인가? ('12 -01 '은 날짜가 아니며 분명히'% m- % d '또는'% y- % m '또는 단지 ID가 아닌 것입니까? – mnel
당신이 말한 사실 'Y'가 실제로'input $ y'라고 가정하고,'environment()'의 의심스러운 존재와 함께 당신은 이미 잘못된 경로로 꽤 길을 갔다는 것을 알게됩니다. (본질적으로) 여기서 피할 수없는 부분이 있으며, 사용자가 특정 열을 선택해야하는 곳이라고 가정합니다. – joran
@ joran : 안녕하세요, 저는이 사용자를 사용자 입력 (https : // github) 구현에 주로 따라갔습니다. co.kr/jcheng5/seattle-meetup/blob/master/diamonds3/server.R. 어떻게 용융의 사용은 불가피한가요? 환경()을 사용할 수 있다고 확신합니다. 그래서 다른 사용자가 나를 도와 주었기 때문에 포함 시켰습니다.()을 사용하여 또 다른 질문을한다. – user2522217