added activty plotting

added particle logging
added gfx to tex
This commit is contained in:
kazu
2016-05-04 19:23:41 +02:00
parent e3d7e83159
commit a6790c3db3
9 changed files with 1588 additions and 10 deletions

View File

@@ -101,6 +101,8 @@ public:
return GridPoint(p.x, p.y, p.z); return GridPoint(p.x, p.y, p.z);
} }
GroundTruthWay getGroundTruthWay(SensorReader& sr, const std::unordered_map<int, Point3>& waypoints, std::vector<int> ids) { GroundTruthWay getGroundTruthWay(SensorReader& sr, const std::unordered_map<int, Point3>& waypoints, std::vector<int> ids) {
// construct the ground-truth-path by using all contained waypoint ids // construct the ground-truth-path by using all contained waypoint ids
@@ -206,6 +208,9 @@ public:
std::vector<float> errorsDistNorm; std::vector<float> errorsDistNorm;
std::vector<float> errorsDistSmooth; std::vector<float> errorsDistSmooth;
// acticity output
std::vector<int> activity;
// number of updates to skip before starting the smoothing process // number of updates to skip before starting the smoothing process
const int skip = 35; const int skip = 35;
@@ -321,6 +326,7 @@ public:
const float errDist = gtw.getMinDist(curEst); // minimum distance between estimation and ground-truth const float errDist = gtw.getMinDist(curEst); // minimum distance between estimation and ground-truth
activity.push_back((int)actDet.getCurrentActivity());
// count number of transitions // count number of transitions
++cnt; ++cnt;
@@ -355,6 +361,9 @@ public:
} }
//use and visualize the smoothed particle set //use and visualize the smoothed particle set
const Point3 curSmoothedEst = estBF.pCur; const Point3 curSmoothedEst = estBF.pCur;
@@ -377,6 +386,7 @@ public:
errorsSmooth.push_back(errSmoothed); errorsSmooth.push_back(errSmoothed);
errorsDistSmooth.push_back(errDistSmoothed); errorsDistSmooth.push_back(errDistSmoothed);
//std::cout << "SmoothingTime: " << tsHistory[(tsHistory.size() - 1) - MiscSettings::lag] << " " << statsSmoothing.asString() << std::endl; //std::cout << "SmoothingTime: " << tsHistory[(tsHistory.size() - 1) - MiscSettings::lag] << " " << statsSmoothing.asString() << std::endl;
//std::cout << "SmoothingDist: " << tsHistory[(tsHistory.size() - 1) - MiscSettings::lag] << " " << statsDistSmoothing.asString() << std::endl; //std::cout << "SmoothingDist: " << tsHistory[(tsHistory.size() - 1) - MiscSettings::lag] << " " << statsDistSmoothing.asString() << std::endl;
@@ -455,6 +465,12 @@ public:
oError.close(); oError.close();
} }
{ // detailled activity over time
std::ofstream oAct("/tmp/act_" + runName + ".dat");
for (int i : activity) {oAct << i << "\n";}
oAct.close();
}
// plot // plot
//vis.clearStates(); //vis.clearStates();
vis.gp.setTerminal("png", K::GnuplotSize(2560 * 2.54, 1440 * 2.54) ); vis.gp.setTerminal("png", K::GnuplotSize(2560 * 2.54, 1440 * 2.54) );

View File

@@ -2,6 +2,7 @@
#define SMOOTHINGEVAL1_H #define SMOOTHINGEVAL1_H
#include "SmoothingEvalBase.h" #include "SmoothingEvalBase.h"
#include "SmoothingEvalBaseLOG.h"
#include "FixedLagEvalBase.h" #include "FixedLagEvalBase.h"
#include "../DijkstraMapper.h" #include "../DijkstraMapper.h"
#include <Indoor/grid/walk/GridWalkRandomHeadingUpdate.h> #include <Indoor/grid/walk/GridWalkRandomHeadingUpdate.h>
@@ -21,7 +22,7 @@
#include <KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h> #include <KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h>
#include <KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverageWithAngle.h> #include <KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverageWithAngle.h>
class SmoothingEval1 : public SmoothingEvalBase { class SmoothingEval1 : public SmoothingEvalBaseLOG {
public: public:
@@ -51,9 +52,9 @@ public:
//create the backward smoothing filter //create the backward smoothing filter
bf = new K::BackwardSimulation<MyState>(MiscSettings::numBSParticles); //bf = new K::BackwardSimulation<MyState>(MiscSettings::numBSParticles);
//bf = new K::CondensationBackwardFilter<MyState>; bf = new K::CondensationBackwardFilter<MyState>;
bf->setSampler( std::unique_ptr<K::CumulativeSampler<MyState>>(new K::CumulativeSampler<MyState>())); //bf->setSampler( std::unique_ptr<K::CumulativeSampler<MyState>>(new K::CumulativeSampler<MyState>()));
} }

View File

@@ -1,5 +1,5 @@
#ifndef SMOOTHINGEVALBASE_H #ifndef SMOOTHINGEVALBASELOG_H
#define SMOOTHINGEVALBASE_H #define SMOOTHINGEVALBASELOG_H
#include "../Settings.h" #include "../Settings.h"
#include "../Helper.h" #include "../Helper.h"
@@ -40,7 +40,11 @@
#include "../frank/OrientationSensorReader.h" #include "../frank/OrientationSensorReader.h"
class SmoothingEvalBase { #include <KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverage.h>
#include <KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h>
#include <KLib/math/filter/particles/estimation/ParticleFilterEstimationOrderedWeightedAverage.h>
class SmoothingEvalBaseLOG {
protected: protected:
@@ -79,7 +83,73 @@ protected:
public: public:
SmoothingEvalBase() : grid(MiscSettings::gridSize_cm), floors(Helper::getFloors(grid)) { void dumpParticles(const std::string& mode, const int idx, const std::vector<K::Particle<MyState>>& particles, const Point3 curEst) {
std::string a = "/tmp/" + runName;
std::string b = a + "/particles";
std::string c = b + "/" + mode + "_" + std::to_string(idx) + ".dat";
std::string d = b + "/" + "plot" + "_" + std::to_string(idx) + ".gp";
mkdir(a.c_str(), 0777);
mkdir(b.c_str(), 0777);
std::string file = c;
// std::unordered_map<uint64_t, float> map;
// for (const K::Particle<MyState>& p : particles) {
// const float dz = std::abs(p.state.pCur.z - curEst.z);
// //if (dz > 20) {continue;} // skip particles on other levels
// const uint64_t idx = (uint64_t) p.state.pCur.z * 0xFFFFFFFFUL + (int) p.state.pCur.y * 0xFFFF + (int) p.state.pCur.x;
// //const int x = idx & 0xFFFF; if (x - p.state.pCur.x > 10) {throw 1;} // sanity check
// //const int y = idx / 0xFFFF; if (y - p.state.pCur.y > 10) {throw 1;} // sanity check
// map[idx] += p.weight;
// }
// how to plot
std::ofstream plot(d);
plot << "splot\\\n";
plot << "'filtered_" << (idx) << ".dat' every ::2 using 1:2:3:4 with points palette pt 3 notitle,\\\n";
plot << "'filtered_" << (idx) << ".dat' every ::0::0 using 1:2:3:4 with points palette pt 3 ps 5 title 'avg',\\\n";
plot << "'filtered_" << (idx) << ".dat' every ::1::1 using 1:2:3:4 with points palette pt 3 ps 3 title 'avg50',\\\n";
plot << "'smoothed_" << (idx) << ".dat' every ::2 using ($$1+1000):2:3:4 with points palette pt 7 notitle,\\\n";
plot << "'smoothed_" << (idx) << ".dat' every ::0::0 using ($$1+1000):2:3:4 with points palette pt 6 ps 5 title 'avg',\\\n";
plot << "'smoothed_" << (idx) << ".dat' every ::1::1 using ($$1+1000):2:3:4 with points palette pt 6 ps 3 title 'avg50',\\\n";
std::ofstream out(file);
// first two entries are different : avg and avg 50%
K::ParticleFilterEstimationWeightedAverage<MyState> avg;
K::ParticleFilterEstimationOrderedWeightedAverage<MyState> avg50(0.5);
const MyState sAvg = avg.estimate((std::vector<K::Particle<MyState>>&) particles);
const MyState sAvg50 = avg50.estimate((std::vector<K::Particle<MyState>>&) particles);
out << sAvg.pCur.x << " " << sAvg.pCur.y << " " << sAvg.pCur.z << " 0\n";
out << sAvg50.pCur.x << " " << sAvg50.pCur.y << " " << sAvg50.pCur.z << " 0\n";
for (const K::Particle<MyState>& p : particles) {
const float dz = std::abs(p.state.pCur.z - curEst.z);
if (dz > 20) {continue;} // skip particles on other levels
out << p.state.pCur.x << " " << p.state.pCur.y << " " << p.state.pCur.z << " " << p.weight << "\n";
}
// for (auto it : map) {
// const uint64_t idx = it.first;
// const int x = idx % 0xFFFF;
// const int y = idx / 0xFFFF % 0xFFFF;
// const int z = idx / 0xFFFF / 0xFFFF;
// out << x << " " << y << " " << z << " " << it.second << "\n";
// }
out.close();
}
void addPlotDump(const int idx, const std::string txt) {
std::string c = "/tmp/" + runName + "/" + "particles" + "/plot_" + std::to_string(idx) + ".gp";
std::ofstream out(c, std::fstream::app);
out << txt;
out.close();
}
SmoothingEvalBaseLOG() : grid(MiscSettings::gridSize_cm), floors(Helper::getFloors(grid)) {
// build the grid // build the grid
Helper::buildTheGrid(grid, floors); Helper::buildTheGrid(grid, floors);
@@ -283,6 +353,7 @@ public:
obs.currentActivity = actDet.getCurrentActivity(); obs.currentActivity = actDet.getCurrentActivity();
// time for a transition? // time for a transition?
if (se.ts - lastTransitionTS > MiscSettings::timeSteps) { if (se.ts - lastTransitionTS > MiscSettings::timeSteps) {
@@ -307,6 +378,7 @@ public:
++cnt; ++cnt;
// skip the first 24 scans due to uniform distribution start // skip the first 24 scans due to uniform distribution start
if (cnt > 35) { if (cnt > 35) {
statsFiltering.add(err); statsFiltering.add(err);
@@ -319,7 +391,10 @@ public:
//save the current estimation for later smoothing. //save the current estimation for later smoothing.
pfHistory.push_back(pf->getNonResamplingParticles()); pfHistory.push_back(pf->getNonResamplingParticles());
tsHistory.push_back(se.ts); tsHistory.push_back(se.ts);
}
dumpParticles("filtered", cnt-36, pf->getNonResamplingParticles(), curEst);
}
// plot // plot
vis.clearStates(); vis.clearStates();
@@ -376,6 +451,12 @@ public:
smoothedEst.push_back(estBF.pCur); smoothedEst.push_back(estBF.pCur);
} }
for(int t = 0; t < smoothedEst.size(); ++t){
int idx = smoothedEst.size() - 1 - t;
const Point3 curSmoothedEst = smoothedEst[idx];
dumpParticles("smoothed", t, bf->getbackwardParticles()[idx], curSmoothedEst);
}
std::reverse(smoothedEst.begin(), smoothedEst.end()); std::reverse(smoothedEst.begin(), smoothedEst.end());
for(int t = 0; t < smoothedEst.size(); ++t){ for(int t = 0; t < smoothedEst.size(); ++t){
@@ -429,6 +510,8 @@ public:
usleep(1000*33); usleep(1000*33);
} }
//statsout2.close(); //statsout2.close();
{ // detailled error-description (normally filtered) { // detailled error-description (normally filtered)

View File

@@ -117,7 +117,7 @@
% gfx include folder % gfx include folder
\graphicspath{ {gfx/baro/},{gfx/graph/},{gfx/paths/},{gfx/eval/},{gfx/},{gfx/grid/}} \graphicspath{ {gfx/baro/},{gfx/graph/},{gfx/paths/},{gfx/eval/},{gfx/},{gfx/grid/},{gfx/activity/}}
% correct bad hyphenation here % correct bad hyphenation here

View File

@@ -1,3 +1,9 @@
\section{Conclusion} \section{Conclusion}
map information into smoothing. better way and faster then just dijkstra. compensate big jumps caused by wifi. better method for estimation and drawing of particles in backward simulation. more advanced smoothing transition. not used evaluating using the observations, but using the given information for more advanced approaches. map information into smoothing. better way and faster then just dijkstra. compensate big jumps caused by wifi. better method for estimation and drawing of particles in backward simulation. more advanced smoothing transition. not used evaluating using the observations, but using the given information for more advanced approaches.
\begin{figure}
\input{gfx/activity/activity_over_time}
\caption{activity recognition}
\label{fig:activityRecognition}
\end{figure}

View File

@@ -0,0 +1,301 @@
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
4
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
4
4
4
4
4
4
4
2
2
2
2
2
2
2
4
4
4
4
4
4
4
4
4
4
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
4
4
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
4
4
4
4
4
4
2
2
2
2
2
4
4
4
4
4
4
4
4
4
4
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
4
4
4
4
4
4
4
4
2
2
2
2
2
4
4
4
4
4
4
4
4
4
4
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

View File

@@ -0,0 +1,978 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: activity_over_time.tex
%%Creator: gnuplot 5.0 patchlevel 1
%%CreationDate: Wed May 4 13:47:00 2016
%%DocumentFonts:
%%BoundingBox: 50 50 294 150
%%EndComments
%%BeginProlog
/gnudict 256 dict def
gnudict begin
%
% The following true/false flags may be edited by hand if desired.
% The unit line width and grayscale image gamma correction may also be changed.
%
/Color false def
/Blacktext true def
/Solid false def
/Dashlength 1 def
/Landscape false def
/Level1 false def
/Level3 false def
/Rounded false def
/ClipToBoundingBox false def
/SuppressPDFMark false def
/TransparentPatterns false def
/gnulinewidth 5.000 def
/userlinewidth gnulinewidth def
/Gamma 1.0 def
/BackgroundColor {-1.000 -1.000 -1.000} def
%
/vshift -73 def
/dl1 {
10.0 Dashlength userlinewidth gnulinewidth div mul mul mul
Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
} def
/dl2 {
10.0 Dashlength userlinewidth gnulinewidth div mul mul mul
Rounded { currentlinewidth 0.75 mul add } if
} def
/hpt_ 31.5 def
/vpt_ 31.5 def
/hpt hpt_ def
/vpt vpt_ def
/doclip {
ClipToBoundingBox {
newpath 50 50 moveto 294 50 lineto 294 150 lineto 50 150 lineto closepath
clip
} if
} def
%
% Gnuplot Prolog Version 5.0 (Dec 2014)
%
%/SuppressPDFMark true def
%
/M {moveto} bind def
/L {lineto} bind def
/R {rmoveto} bind def
/V {rlineto} bind def
/N {newpath moveto} bind def
/Z {closepath} bind def
/C {setrgbcolor} bind def
/f {rlineto fill} bind def
/g {setgray} bind def
/Gshow {show} def % May be redefined later in the file to support UTF-8
/vpt2 vpt 2 mul def
/hpt2 hpt 2 mul def
/Lshow {currentpoint stroke M 0 vshift R
Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def
/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def
/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R
Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def
/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
/hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
{pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
/BL {stroke userlinewidth 2 mul setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
/AL {stroke userlinewidth 2 div setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
/UL {dup gnulinewidth mul /userlinewidth exch def
dup 1 lt {pop 1} if 10 mul /udl exch def} def
/PL {stroke userlinewidth setlinewidth
Rounded {1 setlinejoin 1 setlinecap} if} def
3.8 setmiterlimit
% Classic Line colors (version 5.0)
/LCw {1 1 1} def
/LCb {0 0 0} def
/LCa {0 0 0} def
/LC0 {1 0 0} def
/LC1 {0 1 0} def
/LC2 {0 0 1} def
/LC3 {1 0 1} def
/LC4 {0 1 1} def
/LC5 {1 1 0} def
/LC6 {0 0 0} def
/LC7 {1 0.3 0} def
/LC8 {0.5 0.5 0.5} def
% Default dash patterns (version 5.0)
/LTw {PL [] 1 setgray} def
/LTb {BL [] LCb DL} def
/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
/LT0 {PL [] LC0 DL} def
/LT1 {PL [2 dl1 3 dl2] LC1 DL} def
/LT2 {PL [1 dl1 1.5 dl2] LC2 DL} def
/LT3 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC3 DL} def
/LT4 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
/LT5 {PL [4 dl1 2 dl2] LC5 DL} def
/LT6 {PL [1.5 dl1 1.5 dl2 1.5 dl1 1.5 dl2 1.5 dl1 6 dl2] LC6 DL} def
/LT7 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC7 DL} def
/LT8 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC8 DL} def
/SL {[] 0 setdash} def
/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
/Dia {stroke [] 0 setdash 2 copy vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke
Pnt} def
/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
currentpoint stroke M
hpt neg vpt neg R hpt2 0 V stroke
} def
/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke
Pnt} def
/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
hpt2 vpt2 neg V currentpoint stroke M
hpt2 neg 0 R hpt2 vpt2 V stroke} def
/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke
Pnt} def
/Star {2 copy Pls Crs} def
/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath fill} def
/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath fill} def
/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke
Pnt} def
/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath fill} def
/DiaF {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath fill} def
/Pent {stroke [] 0 setdash 2 copy gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore Pnt} def
/PentF {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath fill grestore} def
/Circle {stroke [] 0 setdash 2 copy
hpt 0 360 arc stroke Pnt} def
/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
/C1 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
vpt 0 360 arc closepath} bind def
/C2 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C3 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C4 {BL [] 0 setdash 2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C5 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc
2 copy moveto
2 copy vpt 180 270 arc closepath fill
vpt 0 360 arc} bind def
/C6 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C7 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 270 arc closepath fill
vpt 0 360 arc closepath} bind def
/C8 {BL [] 0 setdash 2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C9 {BL [] 0 setdash 2 copy moveto
2 copy vpt 270 450 arc closepath fill
vpt 0 360 arc closepath} bind def
/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
2 copy moveto
2 copy vpt 90 180 arc closepath fill
vpt 0 360 arc closepath} bind def
/C11 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 180 arc closepath fill
2 copy moveto
2 copy vpt 270 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C12 {BL [] 0 setdash 2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C13 {BL [] 0 setdash 2 copy moveto
2 copy vpt 0 90 arc closepath fill
2 copy moveto
2 copy vpt 180 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/C14 {BL [] 0 setdash 2 copy moveto
2 copy vpt 90 360 arc closepath fill
vpt 0 360 arc} bind def
/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
vpt 0 360 arc closepath} bind def
/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath} bind def
/Square {dup Rec} bind def
/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
2 copy vpt Square fill Bsquare} bind def
/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
Bsquare} bind def
/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
Bsquare} bind def
/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy vpt Square fill Bsquare} bind def
/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
/DiaE {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V closepath stroke} def
/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V closepath stroke} def
/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V closepath stroke} def
/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V closepath stroke} def
/PentE {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
closepath stroke grestore} def
/CircE {stroke [] 0 setdash
hpt 0 360 arc stroke} def
/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
/DiaW {stroke [] 0 setdash vpt add M
hpt neg vpt neg V hpt vpt neg V
hpt vpt V hpt neg vpt V Opaque stroke} def
/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
0 vpt2 neg V hpt2 0 V 0 vpt2 V
hpt2 neg 0 V Opaque stroke} def
/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
hpt neg vpt -1.62 mul V
hpt 2 mul 0 V
hpt neg vpt 1.62 mul V Opaque stroke} def
/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
hpt neg vpt 1.62 mul V
hpt 2 mul 0 V
hpt neg vpt -1.62 mul V Opaque stroke} def
/PentW {stroke [] 0 setdash gsave
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
Opaque stroke grestore} def
/CircW {stroke [] 0 setdash
hpt 0 360 arc Opaque stroke} def
/BoxFill {gsave Rec 1 setgray fill grestore} def
/Density {
/Fillden exch def
currentrgbcolor
/ColB exch def /ColG exch def /ColR exch def
/ColR ColR Fillden mul Fillden sub 1 add def
/ColG ColG Fillden mul Fillden sub 1 add def
/ColB ColB Fillden mul Fillden sub 1 add def
ColR ColG ColB setrgbcolor} def
/BoxColFill {gsave Rec PolyFill} def
/PolyFill {gsave Density fill grestore grestore} def
/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
%
% PostScript Level 1 Pattern Fill routine for rectangles
% Usage: x y w h s a XX PatternFill
% x,y = lower left corner of box to be filled
% w,h = width and height of box
% a = angle in degrees between lines and x-axis
% XX = 0/1 for no/yes cross-hatch
%
/PatternFill {gsave /PFa [ 9 2 roll ] def
PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
clip
currentlinewidth 0.5 mul setlinewidth
/PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
0 0 M PFa 5 get rotate PFs -2 div dup translate
0 1 PFs PFa 4 get div 1 add floor cvi
{PFa 4 get mul 0 M 0 PFs V} for
0 PFa 6 get ne {
0 1 PFs PFa 4 get div 1 add floor cvi
{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
} if
stroke grestore} def
%
/languagelevel where
{pop languagelevel} {1} ifelse
dup 2 lt
{/InterpretLevel1 true def
/InterpretLevel3 false def}
{/InterpretLevel1 Level1 def
2 gt
{/InterpretLevel3 Level3 def}
{/InterpretLevel3 false def}
ifelse }
ifelse
%
% PostScript level 2 pattern fill definitions
%
/Level2PatternFill {
/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
bind def
/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke}
>> matrix makepattern
/Pat1 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
>> matrix makepattern
/Pat2 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
8 8 L 8 0 L 0 0 L fill}
>> matrix makepattern
/Pat3 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
0 12 M 12 0 L stroke}
>> matrix makepattern
/Pat4 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
0 -4 M 12 8 L stroke}
>> matrix makepattern
/Pat5 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
0 12 M 8 -4 L 4 12 M 10 0 L stroke}
>> matrix makepattern
/Pat6 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
>> matrix makepattern
/Pat7 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
12 0 M -4 8 L 12 4 M 0 10 L stroke}
>> matrix makepattern
/Pat8 exch def
<< Tile8x8
/PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
-4 0 M 12 8 L -4 4 M 8 10 L stroke}
>> matrix makepattern
/Pat9 exch def
/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
} def
%
%
%End of PostScript Level 2 code
%
/PatternBgnd {
TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
} def
%
% Substitute for Level 2 pattern fill codes with
% grayscale if Level 2 support is not selected.
%
/Level1PatternFill {
/Pattern1 {0.250 Density} bind def
/Pattern2 {0.500 Density} bind def
/Pattern3 {0.750 Density} bind def
/Pattern4 {0.125 Density} bind def
/Pattern5 {0.375 Density} bind def
/Pattern6 {0.625 Density} bind def
/Pattern7 {0.875 Density} bind def
} def
%
% Now test for support of Level 2 code
%
Level1 {Level1PatternFill} {Level2PatternFill} ifelse
%
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
currentdict end definefont pop
%
Level1 SuppressPDFMark or
{} {
/SDict 10 dict def
systemdict /pdfmark known not {
userdict /pdfmark systemdict /cleartomark get put
} if
SDict begin [
/Title (activity_over_time.tex)
/Subject (gnuplot plot)
/Creator (gnuplot 5.0 patchlevel 1)
/Author (kazu)
% /Producer (gnuplot)
% /Keywords ()
/CreationDate (Wed May 4 13:47:00 2016)
/DOCINFO pdfmark
end
} ifelse
end
%
% Support for boxed text - Ethan A Merritt May 2005
%
/InitTextBox { userdict /TBy2 3 -1 roll put userdict /TBx2 3 -1 roll put
userdict /TBy1 3 -1 roll put userdict /TBx1 3 -1 roll put
/Boxing true def } def
/ExtendTextBox { Boxing
{ gsave dup false charpath pathbbox
dup TBy2 gt {userdict /TBy2 3 -1 roll put} {pop} ifelse
dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse
dup TBy1 lt {userdict /TBy1 3 -1 roll put} {pop} ifelse
dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse
grestore } if } def
/PopTextBox { newpath TBx1 TBxmargin sub TBy1 TBymargin sub M
TBx1 TBxmargin sub TBy2 TBymargin add L
TBx2 TBxmargin add TBy2 TBymargin add L
TBx2 TBxmargin add TBy1 TBymargin sub L closepath } def
/DrawTextBox { PopTextBox stroke /Boxing false def} def
/FillTextBox { gsave PopTextBox 1 1 1 setrgbcolor fill grestore /Boxing false def} def
0 0 0 0 InitTextBox
/TBxmargin 20 def
/TBymargin 20 def
/Boxing false def
/textshow { ExtendTextBox Gshow } def
%
%%EndProlog
%%Page: 1 1
gnudict begin
gsave
doclip
50 50 translate
0.050 0.050 scale
0 setgray
newpath
1.000 UL
LTb
LCb setrgbcolor
LTb
0.93 0.93 0.93 C 1.000 924 264 363 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.87 0.87 0.87 C 1.000 1287 264 675 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.93 0.93 0.93 C 1.000 1962 264 285 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.87 0.87 0.87 C 1.000 2247 264 364 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.93 0.93 0.93 C 1.000 2611 264 233 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.87 0.87 0.87 C 1.000 2844 264 804 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.93 0.93 0.93 C 1.000 3648 264 286 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.87 0.87 0.87 C 1.000 3934 264 311 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.93 0.93 0.93 C 1.000 4245 264 312 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.87 0.87 0.87 C 1.000 4557 264 259 1682 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
0.500 UL
LTa
LCa setrgbcolor
924 264 M
3918 0 V
stroke
1.000 UL
LTb
LCb setrgbcolor
LTb
924 264 M
63 0 V
stroke
0.500 UL
LTa
LCa setrgbcolor
924 545 M
3918 0 V
stroke
1.000 UL
LTb
LCb setrgbcolor
LTb
924 545 M
63 0 V
stroke
0.500 UL
LTa
LCa setrgbcolor
924 825 M
3918 0 V
stroke
1.000 UL
LTb
LCb setrgbcolor
LTb
924 825 M
63 0 V
stroke
0.500 UL
LTa
LCa setrgbcolor
924 1106 M
3918 0 V
stroke
1.000 UL
LTb
LCb setrgbcolor
LTb
924 1106 M
63 0 V
stroke
0.500 UL
LTa
LCa setrgbcolor
924 1386 M
3918 0 V
stroke
1.000 UL
LTb
LCb setrgbcolor
LTb
924 1386 M
63 0 V
stroke
0.500 UL
LTa
LCa setrgbcolor
924 264 M
3918 0 V
stroke
1.000 UL
LTb
LCb setrgbcolor
LTb
924 264 M
63 0 V
stroke
0.500 UL
LTa
LCa setrgbcolor
924 1386 M
3918 0 V
stroke
1.000 UL
LTb
LCb setrgbcolor
LTb
924 1386 M
63 0 V
924 264 M
0 63 V
519 -63 R
0 63 V
519 -63 R
0 63 V
519 -63 R
0 63 V
519 -63 R
0 63 V
519 -63 R
0 63 V
519 -63 R
0 63 V
519 -63 R
0 63 V
stroke
924 1947 N
924 264 L
3918 0 V
0 1683 V
-3918 0 V
Z stroke
1.000 UP
1.000 UL
LTb
1.200 UL
LTb
0.00 0.00 0.00 C 924 264 M
13 0 V
13 0 V
13 281 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 280 V
12 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 -280 V
13 0 V
13 0 V
13 0 V
13 0 V
13 280 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 561 V
13 0 V
13 -561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
12 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
12 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 561 V
stroke 2273 1386 M
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 -561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 -561 V
13 0 V
13 0 V
13 0 V
12 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
12 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 561 V
13 0 V
13 0 V
13 -561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
12 0 V
stroke 3622 825 M
13 561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 -561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 -561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
12 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 -561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 561 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 -561 V
13 0 V
13 0 V
13 0 V
12 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
13 0 V
stroke
2.000 UL
LTb
LCb setrgbcolor
LTb
1.000 UL
LTb
924 1947 N
924 264 L
3918 0 V
0 1683 V
-3918 0 V
Z stroke
1.000 UP
1.000 UL
LTb
stroke
grestore
end
showpage
%%Trailer

View File

@@ -0,0 +1,121 @@
% GNUPLOT: LaTeX picture with Postscript
\begingroup
\makeatletter
\providecommand\color[2][]{%
\GenericError{(gnuplot) \space\space\space\@spaces}{%
Package color not loaded in conjunction with
terminal option `colourtext'%
}{See the gnuplot documentation for explanation.%
}{Either use 'blacktext' in gnuplot or load the package
color.sty in LaTeX.}%
\renewcommand\color[2][]{}%
}%
\providecommand\includegraphics[2][]{%
\GenericError{(gnuplot) \space\space\space\@spaces}{%
Package graphicx or graphics not loaded%
}{See the gnuplot documentation for explanation.%
}{The gnuplot epslatex terminal needs graphicx.sty or graphics.sty.}%
\renewcommand\includegraphics[2][]{}%
}%
\providecommand\rotatebox[2]{#2}%
\@ifundefined{ifGPcolor}{%
\newif\ifGPcolor
\GPcolorfalse
}{}%
\@ifundefined{ifGPblacktext}{%
\newif\ifGPblacktext
\GPblacktexttrue
}{}%
% define a \g@addto@macro without @ in the name:
\let\gplgaddtomacro\g@addto@macro
% define empty templates for all commands taking text:
\gdef\gplbacktext{}%
\gdef\gplfronttext{}%
\makeatother
\ifGPblacktext
% no textcolor at all
\def\colorrgb#1{}%
\def\colorgray#1{}%
\else
% gray or color?
\ifGPcolor
\def\colorrgb#1{\color[rgb]{#1}}%
\def\colorgray#1{\color[gray]{#1}}%
\expandafter\def\csname LTw\endcsname{\color{white}}%
\expandafter\def\csname LTb\endcsname{\color{black}}%
\expandafter\def\csname LTa\endcsname{\color{black}}%
\expandafter\def\csname LT0\endcsname{\color[rgb]{1,0,0}}%
\expandafter\def\csname LT1\endcsname{\color[rgb]{0,1,0}}%
\expandafter\def\csname LT2\endcsname{\color[rgb]{0,0,1}}%
\expandafter\def\csname LT3\endcsname{\color[rgb]{1,0,1}}%
\expandafter\def\csname LT4\endcsname{\color[rgb]{0,1,1}}%
\expandafter\def\csname LT5\endcsname{\color[rgb]{1,1,0}}%
\expandafter\def\csname LT6\endcsname{\color[rgb]{0,0,0}}%
\expandafter\def\csname LT7\endcsname{\color[rgb]{1,0.3,0}}%
\expandafter\def\csname LT8\endcsname{\color[rgb]{0.5,0.5,0.5}}%
\else
% gray
\def\colorrgb#1{\color{black}}%
\def\colorgray#1{\color[gray]{#1}}%
\expandafter\def\csname LTw\endcsname{\color{white}}%
\expandafter\def\csname LTb\endcsname{\color{black}}%
\expandafter\def\csname LTa\endcsname{\color{black}}%
\expandafter\def\csname LT0\endcsname{\color{black}}%
\expandafter\def\csname LT1\endcsname{\color{black}}%
\expandafter\def\csname LT2\endcsname{\color{black}}%
\expandafter\def\csname LT3\endcsname{\color{black}}%
\expandafter\def\csname LT4\endcsname{\color{black}}%
\expandafter\def\csname LT5\endcsname{\color{black}}%
\expandafter\def\csname LT6\endcsname{\color{black}}%
\expandafter\def\csname LT7\endcsname{\color{black}}%
\expandafter\def\csname LT8\endcsname{\color{black}}%
\fi
\fi
\setlength{\unitlength}{0.0500bp}%
\ifx\gptboxheight\undefined%
\newlength{\gptboxheight}%
\newlength{\gptboxwidth}%
\newsavebox{\gptboxtext}%
\fi%
\setlength{\fboxrule}{0.5pt}%
\setlength{\fboxsep}{1pt}%
\begin{picture}(4896.00,2014.00)%
\gplgaddtomacro\gplbacktext{%
\csname LTb\endcsname%
\put(792,264){\makebox(0,0)[r]{\strut{}\footnotesize{unkown}}}%
\csname LTb\endcsname%
\put(792,545){\makebox(0,0)[r]{\strut{}\footnotesize{standing}}}%
\csname LTb\endcsname%
\put(792,825){\makebox(0,0)[r]{\strut{}\footnotesize{walking}}}%
\csname LTb\endcsname%
\put(792,1106){\makebox(0,0)[r]{\strut{}\footnotesize{stairs\_up}}}%
\csname LTb\endcsname%
\put(792,1386){\makebox(0,0)[r]{\strut{}\footnotesize{stairs\_down}}}%
\csname LTb\endcsname%
\put(924,44){\makebox(0,0){\strut{}\footnotesize{0 s}}}%
\put(1443,44){\makebox(0,0){\strut{}\footnotesize{20 s}}}%
\put(1962,44){\makebox(0,0){\strut{}\footnotesize{40 s}}}%
\put(2481,44){\makebox(0,0){\strut{}\footnotesize{60 s}}}%
\put(3000,44){\makebox(0,0){\strut{}\footnotesize{80 s}}}%
\put(3519,44){\makebox(0,0){\strut{}\footnotesize{100 s}}}%
\put(4038,44){\makebox(0,0){\strut{}\footnotesize{120 s}}}%
\put(4557,44){\makebox(0,0){\strut{}\footnotesize{140 s}}}%
}%
\gplgaddtomacro\gplfronttext{%
\csname LTb\endcsname%
\put(1106,1807){\makebox(0,0){\strut{}\footnotesize{1}}}%
\put(1625,1807){\makebox(0,0){\strut{}\footnotesize{2}}}%
\put(2105,1807){\makebox(0,0){\strut{}\footnotesize{3}}}%
\put(2429,1807){\makebox(0,0){\strut{}\footnotesize{4}}}%
\put(2727,1807){\makebox(0,0){\strut{}\footnotesize{5}}}%
\put(3246,1807){\makebox(0,0){\strut{}\footnotesize{6}}}%
\put(3791,1807){\makebox(0,0){\strut{}\footnotesize{7}}}%
\put(4090,1807){\makebox(0,0){\strut{}\footnotesize{8}}}%
\put(4401,1807){\makebox(0,0){\strut{}\footnotesize{9}}}%
\put(4686,1807){\makebox(0,0){\strut{}\footnotesize{10}}}%
}%
\gplbacktext
\put(0,0){\includegraphics{activity_over_time}}%
\gplfronttext
\end{picture}%
\endgroup

72
tex/gfx/activity/plot.gp Normal file
View File

@@ -0,0 +1,72 @@
set terminal epslatex size 3.4,1.4
set output "activity_over_time.tex"
#set terminal eps size 3.4,1.4
#set output "activity_over_time.eps"
#set multiplot layout 2,1
#set format y "\\footnotesize{%.1f m}"
set format x "\\footnotesize{%.0f s}"
set key horizontal
set yrange[0:17]
set xrange[0:91]
set xtics nomirror
set ytics nomirror
set key at graph 1,1 opaque box samplen 1.0 spacing 0.8 width -13
set lmargin 7.0
set tmargin 0.3
set rmargin 0.4
set bmargin 1.2
set object 1 rectangle from 0,0 to 14,15 fs solid noborder fc rgb "#eeeeee" behind # standing
set label 1 "\\footnotesize{1}" at 7,5.5 center rotate by 0 front
set object 2 rectangle from 14,0 to 40,15 fs solid noborder fc rgb "#dddddd" behind # walking down the way
set label 2 "\\footnotesize{2}" at 27,5.5 center rotate by 0 front
set object 3 rectangle from 40,0 to 51,15 fs solid noborder fc rgb "#eeeeee" behind # ignoring the shortest path
set label 3 "\\footnotesize{3}" at 45.5,5.5 center rotate by 0 front
set object 4 rectangle from 51,0 to 65,15 fs solid noborder fc rgb "#dddddd" behind # stairwell
set label 4 "\\footnotesize{4}" at 58,5.5 center rotate by 0 front
set object 5 rectangle from 65,0 to 74,15 fs solid noborder fc rgb "#eeeeee" behind # exit stairwell
set label 5 "\\footnotesize{5}" at 69.5,5.5 center rotate by 0 front
set object 6 rectangle from 74,0 to 105,15 fs solid noborder fc rgb "#dddddd" behind # floor
set label 6 "\\footnotesize{6}" at 89.5,5.5 center rotate by 0 front
set object 7 rectangle from 105,0 to 116,15 fs solid noborder fc rgb "#eeeeee" behind # stair down to f1
set label 7 "\\footnotesize{7}" at 110.5,5.5 center rotate by 0 front
set object 8 rectangle from 116,0 to 128,15 fs solid noborder fc rgb "#dddddd" behind # floor
set label 8 "\\footnotesize{8}" at 122,5.5 center rotate by 0 front
set object 9 rectangle from 128,0 to 140,15 fs solid noborder fc rgb "#eeeeee" behind # stair down to f0
set label 9 "\\footnotesize{9}" at 134,5.5 center rotate by 0 front
set object 10 rectangle from 140,0 to 150,15 fs solid noborder fc rgb "#dddddd" behind # end
set label 10 "\\footnotesize{10}" at 145,5.5 center rotate by 0 front
#set object 900 rectangle at graph 0.5, 0.94 size graph 0.65,0.12 fs solid fc rgb "#ffffff" lc rgb "#000000"
#set label 901 "\\textcolor[rgb]{0,0,0}{\\footnotesize{simple}}" at graph 0.28, 0.94 center front
#set label 902 "\\textcolor[rgb]{0,0,0.8}{\\footnotesize{multi}}" at graph 0.49, 0.94 center front
#set label 903 "\\textcolor[rgb]{0.8,0,0}{\\footnotesize{shortest}}" at graph 0.71, 0.94 center front
set grid y
set format y ""
set ytics 0 4
set ytics add ("\\footnotesize{unkown}" 0)
set ytics add ("\\footnotesize{standing}" 1)
set ytics add ("\\footnotesize{walking}" 2)
set ytics add ("\\footnotesize{stairs\\_up}" 3)
set ytics add ("\\footnotesize{stairs\\_down}" 4)
unset key
set yrange[0:6]
set xrange[0:151]
plot \
"act_bergwerk_path4_nexus_simple_interval0.dat" using ($0/2+0):1 with lines title "\\footnotesize{simple}\\hspace{-1.5mm}" lw 1.2 lc rgb "#000000"