A commandline tool for generating vector line graphs from comma-separated value files.

Choose your operating system:




This page is published in a draft state in order to make the information available as early as possible. Check back for updates.

CSVToSVG is a commandline tool that can be used to make scalable vector graphics (SVG) line or stacked graphs from comma-separated value (CSV) files. It can graph any numerical stat, including multiple stats in a single CSV or a single stat across multiple CSVs or a directory of CSVs, with support for smoothing and budget lines. The data can be generated by either the StartFPSChart and StopFPSChart commands or using the CSV Profiler.


The CSVToSVG executable can be found in the following location:


The source files can be found here:


Required arguments



-csvs [list] OR -csvDir [path]

Specifies a list of CSVs separated by spaces, or a directory.

-o [svgFilename]

Sets the filename for the SVG output.

-stats [stat names]

Specifies a list of stats. This can use wildcards. For example: -stats renderthread/*

Multiple stats are not supported when comparing multiple csvs.

Optional arguments



-skipRows [n]

Skips a specified number of rows in the CSV. This is useful for CSV file sgenerated from the FPSChartStart command, where there's a 4-row summary at the top.

-minX [value] -maxX [value] -minY [value] -maxY [value]

Clamps the X and Y range of the source data.


Smooth the graph.

-smoothKernelSize [numFrames]

Specifies the smoothing kernel size in column entries to use.

-smoothKernelPercent [percentage]

Specifies the smoothing kernel size as a percentage of the graph length.

-legend [list]

Override the legend, otherwise this will be computed automatically.

-width [value] -height [value]

Specifies the width and height of the image.

-title [name]

Sets the title for the graph.



Render just the graph, no borders.

-budget [ms]

Sets the budget line. Default is 33.3.

-thickness [multipler]

Sets the line thickness of the graph.

-theme [dark/light]

-showEvents [names]

Draws event markers for the specified events, if the CSV has an events column. This can include wildcards.

-threshold [value]

Ignores stats which are entirely under this threshold.


Makes a stacked graph for cumulative stats.

-stacktotalstack [stat name]

Specifies the total stat. Valid for stacked graphs only.

-ignoreStats [list]

Specifies a list of stats to ignore. This can include wildcards.


Adds an interactive frame marker.

-colourOffset [value]

Rotates the colours.

-averageThreshold [value]

Ignores stats whose average is under this threshold.

-maxHierarchyDepth [depth]

When using stats with hierarchy, such as renderthread/initviews, specifies a max depth to traverse.

-hierarchySeparator [character]

Specifies a separator character for heirarchies (e.g "/").

-hideStatPrefix [string]

Hides a prefix from the legend when displaying stats, e.g "gpu/".

-compression [pixel error value]

Enables lossy compression for SVG data.


Shows stat averages next to the legend and sorts the stats in the legend high to low by average value.

-hideEventNames [1/0]

-showAllEventNames [1/0]

-highlightEventRegions [startEventName,endEventName]

Event controls (see -showevents).

-discardLastFrame [1/0]

Discards the final frame of data which is often invalid. On (1) by default.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey