선 그래프

마지막 업데이트: 2022년 1월 19일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
작성자 GCK루카스

R, Python 분석과 프로그래밍의 친구 (by R Friend)

R ggpolt2 선그래프, 시계열그래프 (Line Graph) (geom_line())

변수의 개수 및 데이터의 형태에 따라서 그래프, 시각화 방법이 달라지는데요,

지난번 포스팅에서는 한 변수의 연속형 데이터의 시각화 방법으로

- 커널 밀도 곡선(Kernel Density Curve) 선 그래프
: geom_density()

- 박스 그래프(Box Plot)
: geom_boxplot()

- 바이올린 그래프(Violin Plot)
: geom_violin()

범주형 데이터에 대한 시각화 방법으로

- 막대그림(Bar Chart): geom_bar()

- 원그림(Pie Chart): geom_bar() + coord_polar()

- 모자이크 그림(Mosaic Chart): vcd 패키지 mosaic()

이번에는 두 개 이상의 연속형 변수를 시각화하는 방법으로

- 산점도 (Scatter Plot): geom_point()

- 선 그래프(Line Plot): geom_line()

- 시계열 그래프(Time Series 선 그래프 Plot): geom_line()

[ 변수 개수 및 형태에 따른 그래프 종류 선 그래프 선 그래프 ]

선 그래프(Line Graph)는 x축의 연속형 변수(또는 (순서나 크기가 있는 이산형 변수, ordered factor)의 변화에 따른 y축의 변화를 선으로 이어서 보여주는 그래프입니다. x축이 시간의 순서이면 시계열 그래프(Time Series Graph) 이구요 .

Base 패키지에 들어있는 airquality 데이터 프레임을 가지고 시계열 그래프를 그려보도록 하겠습니다.

airquality 데이터 프레임은 1973년 5월부터 9월달까지 뉴욕의 공기의 Ozone, Solar, Wind, Temp를 Daily 로 측정한 데이터 셋입니다. 결측값이 없는 Wind와 Temp를 가지고 시계열 그래프를 그려보겠습니다.

보기에 좋도록 Month 변수와 Day 변수를 합쳐서 Time이라는 새로운 변수를 만들어보겠습니다.

선그래프를 그릴 때 group 지정을 안해주면 아래처럼 경고메시지가 뜨고, 선그래프가 텅 비게 나옵니다.

* 경고메시지: geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?

이 문제를 해결하기 위해 gruop=1 을 지정해줍니다.

위의 두 개의 시계열 그래프를 보면 y축을 ggplot2 가 자동으로 계산해서 적정 범위를 설정해주었습니다만, 경우에 따라서는 사용자가 강제로 특정 범위를 설정해주고 싶을 때가 있습니다. 아래는 ylim()을 이용해서 0~max(y) 값 까지 y축 범위를 설정한 예시입니다.

선그래프의 선 모양도 바꿔보고 싶고, 점도 덮입혀 보고 싶다면 아래 예제를 참고하세요.

참고로 R Line Type과 Shape 은 아래와 같습니다.

다음은 aes() 내 group과 colour 를 사용하여 그룹별로 선그래프, 시계열그래프 그리는 방법입니다.

많은 도움 되었기를 바랍니다.

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

'R 분석과 프로그래밍 > R 그래프_시각화' 카테고리의 다른 글

R ggplot2 클리브랜드 점 그래프(Cleveland dot plot) (geom_point()) (4) 2015.08.23
R ggplot2 이차원 밀도 그래프(2D Density Plot) (stat_density2d()) (0) 2015.08.23
R ggpolt2 선그래프, 시계열그래프 (Line Graph) (geom_line()) (7) 2015.08.22
R ggplot2 산점도(Scatter Plot) (geom_point()) (2) 2015.08.22
R 모자이크 그림: vcd패키지 mosaic() 함수 (2) 2015.08.22
R ggplot2 원그림(geom_bar() + coord_polar()) (0) 2015.08.22

트랙백 주소 ::

댓글을 달아 주세요

group = 1 이 이해가 잘 되지 않습니다. group = 2나 0이나 결과는 같네요.

여기 설명이 나와있네요
http://www.cookbook-r.com/Graphs/Bar_and_line_graphs_(ggplot2)/

질문이 있는줄 모르고 있다가 HG님께서 답변 글 남겨주셔서 알았네요. HG님, 답변 감사합니다!

안녕하세요 혹시 선 그래프 엑셀의 곡선 및 표시가 있는 분산 형과 같은 그래프를 R에서 그리려면 어떻게 해야되는지 알 수 있을까요??
line으로하면 점과 점을 직선으로 연결해서 선 그래프 smooth한 커브형태가 점을 이어서 연결하는 방법은 어떻게 해야되는지 궁금합니다

안녕하세요.
원하시는 그래프가 정확하게 어떤건지 확실하지가 않은데요, 만약 산점도 + 선형회귀모형선과 95%신뢰구간을 함께 그리는 것을 원하신다면 아래 코드 참고하시기 바랍니다.

ggplot(df, aes(x=Weight, y=MPG.highway)) +
geom_point(color='black', size = 3) +
geom_smooth(method=lm, color='blue') +
ggtitle("scatter plot with line regression line and confidence interval")

아 문의 드리고 싶은 내용은 회귀곡선과는 무관한 것인데 제가 질문을 잘 못들었네요;;
예를 들어 3개의 점을 3차원 함수처럼 부드럽게 이어그리려면 어떻게 그리는지가 궁금한것입니다.

제가 원하는건 10개의 점을 부드럽게 통과하는 곡선을 그리는 것입니다.

아, 네.
Local regression 이나 smoothing splines 같은 비선형회귀모형을 키워드로 해서 구글링 햐보실랴요?

제이킴의 스마트워커 (Smart Worker)

엑셀에서 묶음 막대형 그래프 다음으로 많이 쓰이는 것이 꺾은선형 그래프 이며 시간의 변화에 따른 데이터를 표기하는데 탁월 합니다. 그러나 만약 이 차트를 인쇄할 경우 선이 겹쳐지는 부분이 있으면 프린터가 흑백일 경우 구분 하기가 매우 어렵습니다. 이럴 때는 차트에 삼각형, 네모 같은 표식을 넣어주어 구분하면 됩니다. 엑셀 차트의 계열 하나 하나는 모두 각자 서식을 따로 가지고 있으므로 선 하나 하나의 디자인을 다르게 하는 것이 가능합니다.

꺾은선형 그래프의 추가

만약 내가 하는 프로젝트가 거의 꺾은선형 그래프라면 선 그래프 기본 그래프를 꺾은선형으로 해두어도 되지만 일반 막대 그래프에서 바꾸는 것도 그리 오래 걸리진 않습니다.

데이터 안에서 알트 + F1을 누르면 묶은 막대형 그래프가 기본으로 생성됩니다.

디자인 탭에서 차트 종류 변경을 클릭 선 그래프 하세요.

꺾은선형 그래프를 더블 클릭하면 확인을 누르지 않고 바로 삽입이 됩니다.

기본 꺾은선형 그래프 입니다.

꺾은선형 그래프도 여러가지 변형이 있지만 제가 선 그래프 개인적으로 활용해 본 적은 없습니다. 한번씩 클릭해서 어떤 것인지는 확인해 보세요.

라인에 서식 주기

도입부에 설명 하였듯이 꺾은선형 그래프는 흑백 프린터로 프린트를 할 경우 구분하기 쉽지 않습니다. 이럴 때는 굵직한 표식을 넣어주면 구분이 쉬워 집니다. 또 자신의 선호도에 따라 꺾은선을 부드러운 선으로 바꾸실 선 그래프 수도 있습니다.

아무 선이나 더블 클릭을 하면 계열 서식창을 불러 옵니다. 선 하나 하나 모두 각자의 속성을 가지고 있습니다 첫번째 아이콘을 클릭 하시고 >> 표식 >> 표식 옵션에서 형식과 크기를 정합니다. 색상은 제가 미리 밑에서 정했으나 여기 사진에는 보이질 않습니다.

같은 방식으로 나머지 4개의 선의 표식을 모두 정하시면 됩니다. 4개의 선의 표식을 모두 다르게 정하는 것은 안타깝게도 스타일에 없습니다. 만약 같은 스타일을 계속 사용하고 싶다면 지난번에 소개한 차트 서식에 넣어 두시면 이런 수고를 반복 하지 않으셔도 됩니다.

선 디자인

선의 색상도 물론 바꿀 수도 있지만 요긴하게 쓰이는 옵션은 선을 완만하게 만들어 데이터의 부족한 부분을 보완하는 것 입니다. 꺾은선형에서 지나치게 꺾여 있으면 데이터가 부족하다는 뜻이니까요.

첫번째 아이콘 >> 선 을 클릭하시면 선 자체의 색상, 굵기, 여러 기타 옵션을 선 그래프 바꿀 수 있습니다.

완만한 선을 클릭하시면 꺾은선이 이제 완만한 선이 됩니다.

재미 있는 옵션으로 선을 화살표 형태로 만들 수 있습니다.

4가지의 표식과 화살표 까지 넣은 꺾은선, 완만한 선 콤보 그래프 입니다.

오늘 소개해 드린 꺾은선형 그래프의 옵션들은 제가 실제 많이 사용하는 것들 입니다 . 프린터로 차트를 인쇄해야 할 경우 매우 요긴하게 활용 됩니다 .

시티즌 커뮤니티

작성자 껌딱

차트 꺾은선 그래프와 관련하여 질문이 있습니다.

Y축에 음수값 선 그래프 표기 시 아래 캡쳐화면과 같이 X축 값이 0값을 기준으로 표시됩니다.선 그래프

javascript 기준 해결할 수 있는 소스코드가 궁금합니다.

c4903569f470eae0cc2359f0ea9d3d44_1607653932_6076.png

그리고 sheet를 init 하면 열은 'T' 열까지만, 행은 '29' 행까지만 그려지고 그 이상은 sheet가 그려지지도 않고

데이터가 바인딩 되지도 않습니다.

옵션이 있는건지 라이센스에 따라 다른건지 문의드립니다.

1 답변

기타 Re: 차트 꺾은선 그래프 관련 문의

페이지 정보

작성자 GCK루카스

확인해본 결과, 아쉽게도 차트의 X축 값의 위치를 바꾸는 기능은 제공되지 않고 있습니다.

추후 해당 기능을 추가할 수 있도록 본사 개발팀에 리포팅하도록 하겠습니다.

원하시는 답변을 전달 드리지 못해 죄송합니다.

다른 궁금한 점이 생기면, 언제든 문의 주시기 바랍니다.

* 그레이프시티(GrapeCity)는 개발자를 위하여 ComponentOne(컴포넌트원), Spread(스프레드), ActiveReports(액티브리포츠), SpreadJS(스프레드JS), Wijmo(위즈모)와 같은 엑셀 스프레드시트 리포팅 그리드와 차트 등 다양한 종류의 .NET JavaScript(자바스크립트) 컴포넌트 툴을 생산하고있는 개발툴 전문 회사 입니다.


0 개 댓글

답장을 남겨주세요