Gnuplot: линейное масштабирование данных из столбца в определенный диапазон - PullRequest
0 голосов
/ 25 января 2019

Я делаю круговую диаграмму, используя gnuplot.Первые два столбца отображают точку на плоскости XY, и я хочу, чтобы третий указывал размер круга.Третий столбец содержит данные в диапазоне 1000-5000, поэтому я использую:

plot 'foo.csv' u 1:2:($3/100) w circles

, который работает нормально, но мне интересно, есть ли лучший способ.

Я сделал то же самоесоставьте диаграмму с помощью d3.js, где я использовал функцию scaleLinear (), чтобы отобразить данные из третьего столбца (домен, значение 0-max) в диапазон (1-10).Есть ли что-то подобное в gnuplot, где я могу сопоставить свои данные с определенным диапазоном, как этот?

1 Ответ

0 голосов
/ 25 января 2019

Команда "stats" может предоставить информацию, необходимую для масштабирования. Если вы хотите увеличить диапазон входного значения [0: max] до [0:10], это поможет:

stats 'foo.csv' using 3 nooutput
plot 'foo.csv' using 1:2:($3 * 10./STATS_max) w circles

Если линейный диапазон не обязательно начинается с нуля, то, возможно, стоит сначала определить функцию масштабирования.

stats 'foo.csv' using 3 nooutput
scale(y) = 10. * (y - STATS_min) / (STATS_max - STATS_min)
plot 'foo.csv' using 1:2:(scale($3)) with circles
...