[질문]gnuplot 써 보신분 계십니까???

sDH8988L의 이미지

요즘에 논문을 하나 쓰고 있는데요... Graph를 gnuplot으로 그리려고 합니다...

그런데, 한가지 문제가 있네요...

Data를 Graph에 표시를 하고 'linespoints' option을 주면, Line이 생기고

해당 Data의 자리에 어떤 표시가 생기지 않습니까?

그런데, 이 Data들을 연결하는 선들이 직선입니다...별로 보기가 좋지 않죠...

그래서 전체 Graph의 모양을 근거로 각 Data 사이 구간이 곡선으로 처리되었

으면 좋겠는데요... 어떻게 해야 될까요???

GNUplot Manual에도 그런 내용은 나오지 않는 거 같은데요...

예전에 Excel을 사용할 때는 쉽게 구현할 수 있는 기능이었습니다...

gnuplot에도 없을 리는 없을 건데요... 찾지 못하겠습니다...

물론, plot할 때, smooth option이 있기는 하지만, 이것은 그냥 smooth일

뿐이라서 Data가 있는 곳을 지나지 않을 수도 있거든요...

그래서 smooth option은 사용할 수 없습니다...

지금까지 우리나라, 외국의 gnuplot manual들을 많이 읽어봤지만, Data간의

구간은 무조건 다 직선이네요...

Data 사이를 곡선처리하는 경우가 그렇게 없습니까??? 제 생각에는 그렇게

하는 것이 휠씬 자연스러울거 같은데...

아시는 분 계시면 해결책을 부탁 드리겠습니다...

그럼 20000

File attachments: 
첨부파일 크기
Image icon D-T-8.gif101.29 KB
comboy94의 이미지

gnuplot에 그런 기능이 없다면 origin쓰시는게 좋을 듯 싶네요.

데이타간의 연결선이 곡선으로 이어지에 하려면 엑셀을 사용하면 그값위나 아래로 곡선이 지나가는 경우가 생기는데 제가 알기로는 origin은 괜찮을 걸로 압니다.

ris81ryu의 이미지

혹시 엑셀의 추세선을 말씀하시는 것이라면.. 제가 gnuplot에서 사용하는 방법은

-fit 명령으로 데이터에 기반한 곡선 만듭니다.
-데이터가 찍힌 그래프 위에 곡선을 더합니다.

그 외의 방법이라면 저도 잘.. :-)

sDH8988L의 이미지

흠... 오리진은 저도 생각을 해봤는데요...

환경상 LINUX아 UNIX Tool이 아니면 쓸 수가 없습니다...

그래서 gnuplot을 쓰려고 하는 것이지요...

fit와는 다른 것입니다...

일단, Data를 연결하는 전체 선은 완만한 곡선이되, Data Point를 전부 지나야 하거든요... 추세선과는 다르죠...

Excel의 경우에는 선 모양을 직선이 아닌 곡선으로 지정해 두면, Data를 모두 지나는 곡선이 만들어 집니다...

아무리 찾아봐도 gnuplot에서는 못찾겠네요...

ai의 이미지

sDH8988L wrote:
흠... 오리진은 저도 생각을 해봤는데요...

환경상 LINUX아 UNIX Tool이 아니면 쓸 수가 없습니다...

그래서 gnuplot을 쓰려고 하는 것이지요...

fit와는 다른 것입니다...

일단, Data를 연결하는 전체 선은 완만한 곡선이되, Data Point를 전부 지나야 하거든요... 추세선과는 다르죠...

Excel의 경우에는 선 모양을 직선이 아닌 곡선으로 지정해 두면, Data를 모두 지나는 곡선이 만들어 집니다...

아무리 찾아봐도 gnuplot에서는 못찾겠네요...


spline 곡선을 찾으시는 것은 아닙니까.?

War doesnt determine whos right, just whos left.

prajna의 이미지

data point 들을 smooth 하게 연결하는 것이라면
다음과 같이 smooth 를 사용하면 됩니다.

plot 'data-file' smooth csplines

물론 data 전체에 대한 smoothing 도 가능합니다.

보이는 것이 항상 진실일까요????

sDH8988L의 이미지

prajna wrote:
data point 들을 smooth 하게 연결하는 것이라면
다음과 같이 smooth 를 사용하면 됩니다.

plot 'data-file' smooth csplines

물론 data 전체에 대한 smoothing 도 가능합니다.

smooth option으로는 Data Point를 지나지 않을 수도 있더군요...

smooth에서 사용할 수 있는 Option을 다 써봤는데, Data Point를

정확히 지나면서, Data Point 사이 구간이 곡선이 되는 결과는 못봤습니다...

결국 smooth로는 안되더군요...

prajna의 이미지

어떤 경우가 발생하였는지 자세히는 모르겠습니다만,
csplines options 은 interpolation option 입니다.

현재의 data point 를 knot point 로 하여 두 점을 cubic spline 으로
연결하기 때문에 꼭 원래의 점을 지나가게 되어 있습니다.

다음과 같이 하여 확인해 볼 수 도 있습니다.

set term table
set output 'output-file'
plot 'data-file' , "" smooth csplines

를 하신다음 output file을 보면 cspline 을 그리게 되는 포인트를
볼 수 있습니다.

원하는 결과를 얻으시기를 바랍니다 :D

보이는 것이 항상 진실일까요????

sDH8988L의 이미지

흠... smooth가 Data Point를 지나는 것은 맞네요...

제가 잘못봤습니다...
(정확하게 말하자면, range를 작게 주었고 아래에 기술하는 문제 때문에 smooth가 Data point를 지나지 않는 것처럼 보였네요...)

그런데, 한가지 문제가 더 있네요...

smooth csplines Option을 주고 plot을 했는데요...

위에 기술한 것과 같이 Data Point는 잘 지나고 있습니다...

그!런!데!... 두 Data Point 사이에서 선이 요동을 칩니다... -____-

제 Graph의 특성상 직선과 별로 다를 바가 없는 완만한 곡선이 이루어져야 하는데, 아주 요동을 치는 군요... -____-

아래 그림을 첨부했습니다...

아! 그리고 또 중요한 문제가 있는데, 아래 그림을 보시면 아시겠지만, smooth option을 줬을 때, Data를 지나는 순서가

맞지 않습니다...

원래 Data의 순서는 점선과 같이 이동을 해야 하는데, smooth option을 준 선은 그 순서를 지키지 않고 있습니다...

이거 참... 한가지 문제가 풀리니까 다른 문제가 생기네요...

댓글 첨부 파일: 
첨부파일 크기
Image icon 0바이트
prajna의 이미지

Cubic spline은 x axis data를 monoton 하게 다시 정렬하여 사용합니다.

첨부하신 그림과 같이 data의 순서를 유지하면서 부드럽게 연결을 하시려면 (monoton 하지않은...) cubic spline으로는 불가능합니다.

다른 방법을 사용하여 가능한 데 지금 언뜻 생각이 나지 않네요.... :D

보이는 것이 항상 진실일까요????

sDH8988L의 이미지

답변 달아 주신 모든 분들께 감사드립니다...

사실, gnuplot은 특정한 Tool이고 논문을 쓰시는 분들 이외에는 존재 자체를 잘 모르는 Tool이라서 질문을 올리면서도

답변이 올라올 것을 크게 기대는 하지 않았었습니다...

그런데, 이렇게 많이, 또 상세하게 답변을 달아 주셨네요...

다시 한 번 답변을 달아 주신 모든 분들께 감사드립니다...

이제 저도 gnuplot에 대해서 좀 더 많이 공부해야 겠습니다...

자세히 보면 볼 수록 점점 더 강력함을 느끼게 되네요...

특히, Scripting 기능은 아주 따봉! 입니다... 많은 수의 Graph를 한 큐에 처리할 수 있네요...

그럼 20000

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.