Я использую libplot для вывода некоторых данных из программы C. Мой график имеет очень разные пользовательские координаты Y и X. Для оси X я использую диапазон около 5000 точек, а для оси Y я использую диапазон всего 0,2.
Это пример кода, который показывает, что если оси X и Y имеют разные отношения чем 1: 1, текст отображается неправильно.
int examplePlot(void) {
plPlotter *plotter;
plPlotterParams *plotter_params;
/* SET PARAMETERS */
plotter_params = pl_newplparams ();
pl_setplparam (plotter_params, "PAGESIZE", "a4");
/* CREATE AN X PLOTTER */
if ((plotter = pl_newpl_r ("X", NULL, NULL, NULL, plotter_params)) == NULL) {
fprintf (stderr, "Couldn't create Plotter\n");
exit(1);
}
/* OPEN PLOTTER */
if (pl_openpl_r (plotter) < 0) {
fprintf (stderr, "Couldn't open Plotter\n");
exit(1);
}
pl_fspace_r (plotter, 0.0, 0.0, 8.0, 1.0); /* set coor system */
pl_flinewidth_r (plotter, 0.01); /* set line thickness */
pl_pencolorname_r (plotter, "red"); /* use red pen */
pl_erase_r (plotter); /* erase graphics display */
pl_fbox_r(plotter, 0.01, 0.01, 0.98, 0.98);
pl_ffontsize_r (plotter, 0.5); /* font size = 0.5in = 36pt */
pl_fmove_r (plotter, 4.0, 0.5); /* position the graphics cursor */
pl_alabel_r(plotter, 'l', 'c', (const char *)"ABC");
/* CLOSE PLOTTER */
if (pl_closepl_r (plotter) < 0) {
fprintf (stderr, "Couldn't close Plotter\n");
exit(1);
}
/* DELETE PLOTTER */
if (pl_deletepl_r (plotter) < 0) {
fprintf (stderr, "Couldn't delete Plotter\n");
exit(1);
}
}
В выводе показано, как текст имеет отношение высоты / ширины 8: 1. Как получить стандартное соотношение 1: 1 для любых пользовательских координат X / Y?