Сохранение вывода PDF в gnuplot через qt - PullRequest
1 голос
/ 10 марта 2019

Я пытался сохранить вывод графика gnuplot в формате pdf, используя терминал pdfcairo, используя следующий код:

reset
set terminal qt 1 noraise enhanced
set xlabel "Time (sec)"
set ylabel "Displacement (m), Velocity (m/s)"
set title "Vanderpol Oscillator using Runge Kutta's method"
set key box top left spacing 1.5
plot 'data.txt' using 1:2 with lines title 'Displacement', \
     'data.txt' using 1:3 with lines dashtype 2 linecolor 7 \
        title 'Velocity'
set terminal pdfcairo enhanced color notransparent
set output 'vanderpol_pdfcairo.pdf'
replot
unset output
unset terminal

Однако выход клеммы qt и вывод клемм pdfcairo немного отличаются. Вывод через pdfcairo приведен ниже:

output via pdfcairo

Вывод терминала qt, однако, выглядит следующим образом:

output via qt

Обратите внимание на поле легенды для разницы. Есть ли способ сохранить вывод терминала qt с помощью команд gnuplot ?

Частичный файл данных приведен ниже для полноты картины.

 # x   y1   y2
 0.00000000       2.00000000         0.00000000    
 0.100000001       1.99093056       -0.172638252    
 0.200000003       1.96694851       -0.300697386    
 0.300000012       1.93182826       -0.397370458    
 0.400000006       1.88817477       -0.472826719    
 0.500000000       1.83771741       -0.534503400    
 0.600000024       1.78155255       -0.587733626    
 0.699999988       1.72032225       -0.636360347    
 0.800000012       1.65433800       -0.683229983    
 0.900000036       1.58366048       -0.730560362    
 1.00000000       1.50814855       -0.780208290    
 1.10000002       1.42748523       -0.833866239    
 1.20000005       1.34118605       -0.893212378    
 1.30000007       1.24859416       -0.960030317    
 1.39999998       1.14886522        -1.03630733    
 1.50000000       1.04094255        -1.12430966    
 1.60000002      0.923527122        -1.22661817    
 1.70000005      0.795047462        -1.34608305    
 1.80000007      0.653641462        -1.48561156    
 1.89999998      0.497173846        -1.64762938    
 2.00000000      0.323334455        -1.83295059    
 2.10000014      0.129894391        -2.03868413    
 2.20000005      -8.47651213E-02    -2.25484443    
 2.29999995     -0.320725024        -2.45990729    
 2.40000010     -0.575173676        -2.61727047    
 2.50000000     -0.840935469        -2.67749405    
 2.60000014      -1.10578239        -2.59248185    
 2.70000005      -1.35379517        -2.34094477    
 2.79999995      -1.56921184        -1.94889915    
 2.90000010      -1.74111176        -1.48351884    
 3.00000000      -1.86605072        -1.02113712    
 3.10000014      -1.94729543       -0.615993023    
 3.20000005      -1.99192703       -0.290263236    
 3.29999995      -2.00793982        -4.20439988E-02
 3.40000010      -2.00246644        0.142086729    
 3.50000000      -1.98111856        0.278029412    
 3.60000014      -1.94798887        0.379831105    
 3.70000005      -1.90591788        0.458439767    
 3.79999995      -1.85680115        0.521885574    
 3.90000010      -1.80185127        0.575913012    
 4.00000000      -1.74179327        0.624632478    

[EDIT]: как терминал qt сохраняет отображаемый вывод в формате PDF? Что такое код c / c ++ для того же самого?

1 Ответ

1 голос
/ 11 марта 2019

Две разные графические библиотеки участвуют. Не удивительно: терминал qt использует Qt, а терминал pdfcairo - cairo. Если вы хотите лучше совместить интерактивный дисплей с распечаткой, у вас есть несколько вариантов.

  1. Окно терминала qt имеет виджет в левом верхнем углу для создания pdf-копии текущего графика с использованием библиотеки Qt. Это должно соответствовать экрану очень близко.

  2. Интерактивный терминал wxt является альтернативой терминалу qt. Он использует графические библиотеки cairo, поэтому экран wxt должен быть близок к выводу, выданному терминалом pdfcairo.

  3. Окно терминала wxt имеет виджет для печатного вывода, так же как и окно отображения qt. Этот вывод должен быть еще ближе к экрану.

В настоящее время нет опции командной строки для создания PDF-файла с использованием библиотек Qt.

...