2017-04-17 2 views
0

Hy 내가 동일한 코드로 작업하는 것이 궁금하지만 데이터가 1 ​​초/1 초일뿐입니다. 코드가 작동하고 있습니다. 센서 샘플 속도를 약 30Hz로 변경하면 30 초/1 초입니다.GNUPLOT 내가 30 데이터/1 초 코드가 작동하지 않는다면, 왜?

http://i.imgur.com/Wn2fbne.jpg

내가 이런 식으로 원하는 :이 음모를 얻을 것은

:

http://i.imgur.com/GZg5oef.jpg

코드는 내가 사용하는 것은 이것이다 451,515,

set term png 
set autoscale yfix 
set autoscale xfix 
set grid 
#set offsets 0,0,30,30 
#set offsets 0,0,30,30 
set offsets graph 0, 0, 50, 50 

PATCH = system("cat ./outputs/lastPatch.txt") 

set title "MPU-9150 IMU sensor: RAW Accelerometer " 
set xdata time 
set timefmt '%H:%M:%S' 
set format x '%H:%M:%S' 
set xtics rotate 
set xlabel "[time]" 
set ylabel "[-]" 
#set output "./outputs/IMUrawAccel.png" 
set output sprintf("%sIMUrawAccel.png",PATCH) 
#plot './outputs/IMUrawAccel.txt' using 1:2 title 'X' with lines, './outputs/IMUrawAccel.txt' using 1:3 title 'Y' with lines , './outputs/IMUrawAccel.txt' using 1:4 title 'Z' with lines 
plot sprintf("%sIMUrawAccel.txt",PATCH) using 1:2 title 'X' with lines, sprintf("%sIMUrawAccel.txt",PATCH) using 1:3 title 'Y' with lines , sprintf("%sIMUrawAccel.txt",PATCH) using 1:4 title 'Z' with lines 

센서의 출력이이며 (I의 gnuplot가 사용할 어떤)

동일한 타임 스탬프와 다수 데이터 포인트가있다
22:20:59   2704  -1310  -15666 
22:20:59   2886  -1278  -15716 
22:20:59   2860  -1322  -15734 
22:20:59   2844  -1322  -15684 
22:20:59   2854  -1362  -15680 
22:20:59   2834  -1242  -15766 
22:20:59   2864  -1320  -15830 
22:20:59   2836  -1304  -15724 
22:20:59   2882  -1342  -15744 
22:20:59   2888  -1266  -15794 
22:20:59   2940  -1336  -15774 
22:20:59   2866  -1282  -15786 
22:20:59   2860  -1320  -15756 
22:20:59   2810  -1340  -15710 
+0

음, 소스 데이터에 타임 스탬프는 결과 만 그렇게 1 초 해상도가 모든 항목에 대해 30 점으로 현명 할 수 없습니다. 더 높은 해상도로 로그 데이터를 생성해야하거나 포인트가 일정하게 분배 된 경우 명시 적 시간 소인 대신 행 번호를 기반으로 시간 축을 추정 할 수 있습니다. – doynax

답변

1

.

그래서 타임 스탬프로 플롯하면 동일한 x 좌표로 끝납니다.

가능한 해결책은 여러 가지가 있습니다.

  1. 밀리 초. 이것은 훨씬 바람직한 해결책입니다. 가능하지 않은 경우, 타임 스탬프를 향상시키기 위해 스크립트를 작성 plot sprintf("%sIMUrawAccel.txt",PATCH) every 30 using 1:2 title 'X' with lines
  2. :
  3. 같은 타임 스탬프 포인트의 상수가있는 경우 (30 말), 당신은 every 키워드를 사용할 수 있습니다. 동일한 타임 스탬프를 사용하여 데이터 포인트의 수를 계산 한 다음 각 타임 스탬프에 밀리 초를 추가하여 균등하게 간격을 둡니다. (데이터 간격이 일정하다 물론 가정.)
  4. 그냥 시간없이 포인트 줄거리 : plot sprintf("%sIMUrawAccel.txt",PATCH) using :2 title 'X' with lines
+0

예를 들어 30 번째 데이터 만 그릴 수 있습니까? 그렇다면 어떻게? (시간은 센서가 아닌 RTC (실시간 클럭) 모듈을 사용) – art

+0

@art 업데이트 된 답변을 확인하십시오. –