diff --git a/Analysis.cpp b/Analysis.cpp
index b746d21cceda0a11fd900e998664ed514398bb9c..4e1355e8b3f4f0a8524688ca957f4c1c49695bf1 100644
--- a/Analysis.cpp
+++ b/Analysis.cpp
@@ -188,6 +188,7 @@ void Analysis::InitArgs(ArgumentParser* args)
      _getProfile = args->GetIsGetProfile();
      _outputGraph = args->GetIsOutputGraph();
      _plotGraph = args->GetIsPlotGraph();
+     _plotIndex = args->GetIsPlotIndex();
      _isOneDimensional=args->GetIsOneDimensional();
      _vComponent = args->GetVComponent();
      _IgnoreBackwardMovement =args->GetIgnoreBackwardMovement();
@@ -405,6 +406,7 @@ int Analysis::RunAnalysis(const string& filename, const string& path)
                method_D.SetGridSize(_grid_size_X, _grid_size_Y);
                method_D.SetOutputVoronoiCellData(_outputGraph);
                method_D.SetPlotVoronoiGraph(_plotGraph);
+               method_D.SetPlotVoronoiIndex(_plotIndex);
                method_D.SetDimensional(_isOneDimensional);
                method_D.SetCalculateProfiles(_getProfile);
                method_D.SetTrajectoriesLocation(path);
diff --git a/Analysis.h b/Analysis.h
index 64f127b6645d7c9134b6e660b11a34e40c24d9c9..91397a763cbb72163618a540263cc0b9c5ff8936 100644
--- a/Analysis.h
+++ b/Analysis.h
@@ -2,7 +2,7 @@
  * \file        Analysis.h
  * \date        Oct 10, 2014
  * \version     v0.7
- * \copyright   <2009-2015> Forschungszentrum J�lich GmbH. All rights reserved.
+ * \copyright   <2009-2015> Forschungszentrum Jülich GmbH. All rights reserved.
  *
  * \section License
  * This file is part of JuPedSim.
@@ -133,7 +133,11 @@ private:
      int _circleEdges;
      bool _getProfile;        // Whether make field analysis or not
      bool _outputGraph;       // Whether output the data for plot the voronoi diagram each frame
-     bool _plotGraph;       // Whether plot the voronoi diagram each frame
+     bool _plotGraph;       // Whether plot the voronoi diagram each
+                            // frame. if (outputGraph==true)
+     bool _plotIndex;       // Whether plot the voronoi diagram each
+                            // frame with index of pedesrians
+                            // if (outputGraph==true and _polotGraph==true)
      std::vector<bool> _plotTimeseriesA;
      std::vector<bool> _plotTimeseriesC;
      std::vector<bool> _plotTimeseriesD;
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bb8c764addec868912e1eb11cbefcca21574edb5..981055108c24ef829583123dee06bb62d80eb062 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,32 +3,37 @@ All notable changes to `jpsreport` will be documented in this file.
 
 ## v0.8.3 [unreleased]
 ### Added
+- Option to plot Voronoi diagrams with index instead of little blue circles `plot_index`. Use as:
+  ```xml
+  <output_voronoi_cells enabled="true" plot_graphs="true" plot_index="true"/>
+  ```
+- new format of returned polygons `"index | polygon"` 6fa459ad9ffe5a07699c05b655bcf90f114ed635
 - Exit if `framerate` is not found. c1308ef8
 
 ### Changed
-- Pass Matrix by reference bff89e48 
-- Better fonts in plot scripts. 56d6a8f7 
+- Pass Matrix by reference bff89e48
+- Better fonts in plot scripts. 56d6a8f7
 
 
-### Fixed 
-- Ignore empty line in traj file. 3a3ae04e 
-- Fixes for profile plots. a8a1414c 
+### Fixed
+- Ignore empty line in traj file. 3a3ae04e
+- Fixes for profile plots. a8a1414c
 - Fix parsing of framerate. 2ad0b01d
 
 ## v0.8.2 [06.11.2017]
 
 ### Added
 
-- Use the effective distance in method B in case `length_in_movement_direction` is not defined.  (2c321cef) 
+- Use the effective distance in method B in case `length_in_movement_direction` is not defined.  (2c321cef)
 - Added an error warning when the number of agents in the trajectory is not corresponding to total ids or the ped ids are not continuous in the first frame.
 
 ### Changed
-- Code does not come with Boost anymore. User should install Boost before using jpsreport. (2c0c69f3) 
+- Code does not come with Boost anymore. User should install Boost before using jpsreport. (2c0c69f3)
 - use boost matrix instead of double pointers (9ff5c978)
 - Use own index numbers (9a0d8ec8)
 - Use Python3 in scripts.
 
-### Fixed 
+### Fixed
 - Fix SegFault due to reading files from different OS. (9a42c9dd)
 
 ## v0.8.1 [11.10.2016]
@@ -37,7 +42,7 @@ All notable changes to `jpsreport` will be documented in this file.
 
 - Two options `startframe` and `stopframe` are added for each measurement area for method D to assign the time periods for analysis.
 
-- Individual density based on Voronoi method is added for one dimensional case in the output file (Individual headway is moved to the 5th column). 
+- Individual density based on Voronoi method is added for one dimensional case in the output file (Individual headway is moved to the 5th column).
 
 - z-position of each measurement area can be assigned in inifile so that the trajectories in geometries with several floors can be analyzed.
 
@@ -80,7 +85,7 @@ All notable changes to `jpsreport` will be documented in this file.
 
 - Issue a warning when the voronoi cell cannot be calculated.
 
-- A warning will will be given and the program stops if trajectory for a given pedestrian ID is not continuous. 
+- A warning will will be given and the program stops if trajectory for a given pedestrian ID is not continuous.
 
 
 ### Changed
@@ -107,7 +112,7 @@ All notable changes to `jpsreport` will be documented in this file.
 
 - when path of trajectory is not given absolutely, the default location is the same folder with the inifile
 
-	
+
 ## v0.7
 
 ### Added
@@ -122,38 +127,38 @@ All notable changes to `jpsreport` will be documented in this file.
 
 - Changed name of some variables in configuration file:
 
-	**measurementAreas**                --->  **measurement_areas**
-    
-	**Length_in_movement_direction**	---> **length_in_movement_direction**
-	
-	**useXComponent**		            ---> **use_x_component**
-	
-	**useYComponent**		            ---> **use_y_component**
-	
-	**halfFrameNumberToUse**            ---> **frame_step**
-	
-	**timeInterval**	                ---> **frame_interval**
-	
-	**measurementArea**	                ---> **measurement_area**
-	
-	**outputGraph**	                    ---> **output_graph**
-	
-	**individualFDdata**	            ---> **individual_FD**
-	
-	**cutByCircle** 	                ---> **cut_by_circle**
-	
-	**getProfile** 		                ---> **profiles**
-	
-	**scale_x**			                ---> **grid_size_x**
-	
-	**scale_y**			                ---> **grid_size_y**
+    **measurementAreas**                --->  **measurement_areas**
+
+    **Length_in_movement_direction**	---> **length_in_movement_direction**
+
+    **useXComponent**                   ---> **use_x_component**
+
+    **useYComponent**                   ---> **use_y_component**
+
+    **halfFrameNumberToUse**            ---> **frame_step**
+
+    **timeInterval**                    ---> **frame_interval**
+
+    **measurementArea**                 ---> **measurement_area**
+
+    **outputGraph**                     ---> **output_graph**
+
+    **individualFDdata**                ---> **individual_FD**
+
+    **cutByCircle**                     ---> **cut_by_circle**
+
+    **getProfile**                      ---> **profiles**
+
+    **scale_x**                         ---> **grid_size_x**
+
+    **scale_y**                         ---> **grid_size_y**
 - Changed the data type of frame rate (fps) from integer to float
 
-- Changed the way for dealing with pedestrian outside geometry. In old version JPSreport stops when some pedestrians are outside geometry but now it continue working by 
+- Changed the way for dealing with pedestrian outside geometry. In old version JPSreport stops when some pedestrians are outside geometry but now it continue working by
 removing these pedestrians from the list.
 
 - More than one sub rooms in one geometry can be analysed independently.
-	
+
 ### Fixed
-	
-- Fixed bug for dealing with obstacles inside geometry.
\ No newline at end of file
+
+- Fixed bug for dealing with obstacles inside geometry.
diff --git a/general/ArgumentParser.cpp b/general/ArgumentParser.cpp
index 8bd874a1ec23aba431c3da201a656dfbf1ec79fe..48623ec8efb091b365635d017a9162095f535e61 100644
--- a/general/ArgumentParser.cpp
+++ b/general/ArgumentParser.cpp
@@ -2,7 +2,7 @@
  * \file        ArgumentParser.cpp
  * \date        Oct 10, 2014
  * \version     v0.7
- * \copyright   <2009-2015> Forschungszentrum J��lich GmbH. All rights reserved.
+ * \copyright   <2009-2015> Forschungszentrum Jülich GmbH. All rights reserved.
  *
  * \section License
  * This file is part of JuPedSim.
@@ -73,6 +73,7 @@ ArgumentParser::ArgumentParser()
      _isCutByCircle = false;
      _isOutputGraph= false;
      _isPlotGraph= false;
+     _isPlotIndex = false;
      _isOneDimensional=false;
      _isGetProfile =false;
      _steadyStart =100;
@@ -745,6 +746,11 @@ bool ArgumentParser::ParseIniFile(const string& inifile)
                                    Log->Write("INFO: \tGraph of voronoi diagram will be plotted" );
                               }
                          }
+                         if(string(xMethod_D->FirstChildElement("output_voronoi_cells")->Attribute("plot_index"))=="true")
+                         {
+                              _isPlotIndex=true;
+                              Log->Write("INFO: \tVoronoi diagram will be plotted with index of pedestrians" );
+                         }
                     }
                }
 
@@ -873,6 +879,11 @@ bool ArgumentParser::GetIsPlotGraph() const
      return _isPlotGraph;
 }
 
+bool ArgumentParser::GetIsPlotIndex() const
+{
+     return _isPlotIndex;
+}
+
 vector<bool> ArgumentParser::GetIsPlotTimeSeriesA() const
 {
      return _isPlotTimeSeriesA;
diff --git a/general/ArgumentParser.h b/general/ArgumentParser.h
index d85f1c3b822fb1edefdf18a621b6c4ace08025c2..d9e273875a6f59a7242758c43c942d46cf582103 100644
--- a/general/ArgumentParser.h
+++ b/general/ArgumentParser.h
@@ -2,7 +2,7 @@
  * \file        ArgumentParser.cpp
  * \date        Oct 10, 2014
  * \version     v0.7
- * \copyright   <2009-2015> Forschungszentrum J��lich GmbH. All rights reserved.
+ * \copyright   <2009-2015> Forschungszentrum Jülich GmbH. All rights reserved.
  *
  * \section License
  * This file is part of JuPedSim.
@@ -68,6 +68,7 @@ private:
      int _circleEdges;
      bool _isOutputGraph;
      bool _isPlotGraph;
+     bool _isPlotIndex;
      /*bool _isPlotTimeSeriesA;
      bool _isPlotTimeSeriesC;
      bool _isPlotTimeSeriesD;*/
@@ -136,6 +137,7 @@ public:
      int GetCircleEdges() const;
      bool GetIsOutputGraph() const;
      bool GetIsPlotGraph() const;
+     bool GetIsPlotIndex() const;
      std::vector<bool> GetIsPlotTimeSeriesA() const;
      std::vector<bool> GetIsPlotTimeSeriesC() const;
      std::vector<bool> GetIsPlotTimeSeriesD() const;
diff --git a/methods/Method_D.cpp b/methods/Method_D.cpp
index ba66cf90490d7b4eaad093f9cdc79a73adc7419d..f79133f883e5e91f9a65195c309ba4d5f9f535a6 100644
--- a/methods/Method_D.cpp
+++ b/methods/Method_D.cpp
@@ -596,6 +596,10 @@ void Method_D::SetPlotVoronoiGraph(bool plotVoronoiGraph)
 {
      _plotVoronoiCellData = plotVoronoiGraph;
 }
+void Method_D::SetPlotVoronoiIndex(bool plotVoronoiIndex)
+{
+     _plotVoronoiIndex = plotVoronoiIndex;
+}
 
 void Method_D::SetMeasurementArea (MeasurementArea_B* area)
 {
diff --git a/methods/Method_D.h b/methods/Method_D.h
index 21be1cabc62c9aa252399257e6c14da595e8068a..ffe2f55369cf3b1a38519b969492d9e33bc8381c 100644
--- a/methods/Method_D.h
+++ b/methods/Method_D.h
@@ -63,6 +63,7 @@ public:
      void SetCalculateProfiles(bool calcProfile);
      void SetOutputVoronoiCellData(bool outputCellData);
      void SetPlotVoronoiGraph(bool plotVoronoiGraph);
+     void SetPlotVoronoiIndex(bool plotVoronoiIndex);
      void SetMeasurementArea (MeasurementArea_B* area);
      void SetDimensional (bool dimension);
      void SetTrajectoriesLocation(const std::string& trajectoryPath);
@@ -81,6 +82,7 @@ private:
      bool _getProfile;
      bool _outputVoronoiCellData;
      bool _plotVoronoiCellData;
+     bool _plotVoronoiIndex;
      bool _isOneDimensional;
      bool _cutByCircle;       //Adjust whether cut each original voronoi cell by a circle
      double _cutRadius;
@@ -104,7 +106,7 @@ private:
 
 
      std::vector<std::pair<polygon_2d, int> >  GetPolygons(std::vector<double>& XInFrame, std::vector<double>& YInFrame,
-               std::vector<double>& VInFrame, std::vector<int>& IdInFrame);
+                                                           std::vector<double>& VInFrame, std::vector<int>& IdInFrame);
      void OutputVoronoiResults(const std::vector<polygon_2d>&  polygons, const std::string& frid, const std::vector<double>& VInFrame);
      double GetVoronoiDensity(const std::vector<polygon_2d>& polygon, const polygon_2d & measureArea);
      double GetVoronoiDensity2(const std::vector<polygon_2d>& polygon, double* XInFrame, double* YInFrame, const polygon_2d& measureArea);