Marcio Cunha

How to generate performance charts in terminal with Gnuplot

Learn how to transform text logs into visual charts directly in the terminal using Gnuplot. A vital skill for engineers analyzing telemetry data on the fly.

Marcio Cunha•2 min
Also available in:PortuguêsEspañol
Summary
  • Gnuplot enables complex data visualization directly from the command line without the need for heavy GUI applications.
  • Automating chart generation significantly accelerates the analysis of system performance logs and telemetry data.
  • Structured CSV files or logs are the most efficient formats for feeding automatic plotting scripts.
  • The tool supports multiple output formats, including rendering directly within the terminal using ASCII characters.
  • Mastering basic plotting syntax reduces the time spent transitioning from data collection to decision-making.

Why use Gnuplot for system telemetry?

As engineers, we spend much of our time analyzing logs. When data volume scales up, reading raw text becomes inefficient. Gnuplot is a classic command-line tool that turns raw numbers into visible charts, allowing you to identify performance bottlenecks instantly. Unlike GUI-based tools, it lives in your terminal, making it ideal for automating reports on remote servers.

Preparing your logs for data analysis

Before plotting, data must be structured. Telemetry logs usually come with timestamps and numeric values. If you already have the data, you might just need to clean the format, as seen in our guide on how to convert CSV to JSON in Linux via terminal, ensuring the delimiter is correct. Gnuplot reads plain text files where columns represent different metrics.

Getting started with Gnuplot commands

To start, open your terminal and type

gnuplot
to enter interactive mode. You can plot a simple data file with the command
plot 'data.csv' using 1:2 with lines
. Here, 'using 1:2' indicates that the first column is the X-axis and the second is the Y-axis. If your chart looks wrong, verify that your data is sorted correctly, a common pitfall when dealing with time-series logs.

Visualizing charts directly in the terminal

Often, we are logged in via SSH and have no graphical interface available. The good news is that Gnuplot can draw charts using simple characters directly in the console. Configure the output terminal with

set terminal dumb
before the plot command. This generates a minimalist visual representation, which is often enough to identify CPU or memory spikes in milliseconds.

Automating performance reporting tasks

To avoid typing the same commands repeatedly, create a script file with the .gp extension. Inside it, define settings like

set title 'CPU Usage'
,
set datafile separator ','
, and the plot command itself. By running
gnuplot script.gp
, you get the result in seconds. This technique is the foundation for building quick monitoring dashboards that don't rely on complex software, much like the ease of using CLI tools to generate PDF from Markdown on Linux.

Conclusion

Mastering Gnuplot changes how you approach system troubleshooting. By bringing visualization into the terminal, you maintain focus and speed, reducing the friction between the collected data and technical analysis.

Remember that, just like when you test tantalum capacitors for shorts with a multimeter, the precision of your initial data collection dictates the quality of the final chart. Practice creating simple scripts and add this tool to your daily DevOps arsenal.