HXGuo
HXGuo

Reputation: 45

How to add a greek character in png file created by gnuplot

I am using a commercial sever with FreeBSD system without root account. I install gnuplot with my account. But, I can not set up fonts. So, I copy the fonts files in my home directory such as ~/usr/fonts

Then, I use followed scripts in my gnuplot files:

set term png enhanced font '/home/Tom/usr/fonts/truetype/msttcorefonts/verdana.ttf'
set out 'xrd.png'
set xlabel '2 {/Symbol q}'; 
set ylabel 'Count'; 
set xrange [:];
set yrange [:];
unset key;
set border lw 1;
plot './data.txt' using 1:2 with l linetype 1 linewidth 1;
set term xterm;
set out ;

However, I get the following errors when I run my scripts:

gdImageStringFT: Could not find/open font while printing string q with font Symbol
gdImageStringFT: Could not find/open font while printing string q with font Symbol

This might be because the font 'verdana.ttf' that I am using is not correct. But, I can use this font on my own PC with a Debian system.

Upvotes: 3

Views: 17602

Answers (3)

Roland Smith
Roland Smith

Reputation: 43495

Do not use /Symbol. That will not use the Verdana font.

According to this page, the Verdana font includes greek letters.

Use UTF-8 encoding by adding set encoding utf8 to your gnuplot file. Then insert the unicode symbol (according to this page: θ, greek small letter theta, U+03B8) into the label string using your favorite text editor.

Upvotes: 4

Serge Stroobandt
Serge Stroobandt

Reputation: 31518

The plot definition file itself needs to be encoded in UTF-8.

Here are all prerequisites for printing UTF-8 characters with gnuplot:

  • The file needs to contain a line set encoding utf8
  • The option enhanced must be available and set for the chosen terminal type: set terminal … enhanced …
  • The glyph of the UTF-8 character must be available in the chosen font.
  • The plot definition file itself needs to be encoded in UTF-8.

Failing to observe the last point, results in the following gnuplot error:

Unable to convert "…�…": the sequence is invalid in the current charset (UTF-8),
falling back to iso_8859_1

This situation may occur when transferring plot files from Microsoft Windows™ to GNU/Linux.

The character encoding of the plot definition file can be checked with the following GNU/Linux command:

$ file -bi bad.plt
text/plain; charset=iso-8859-1

To correct the character encoding of the plot definition file, use this command:

$ iconv -f iso-8859-1 -t utf-8 -o good.plt bad.plt

Upvotes: 0

Alex
Alex

Reputation: 1

You can use "/Symbol" . Simply add to your file the line "set encoding utf8" At least, it works with arial font.

Upvotes: 0

Related Questions