gnuplot: формат меток компактной оси - PullRequest
2 голосов
/ 17 марта 2019

Подскажите, как в gnuplot правильно сформировать надписи на оси (как показано на рисунке).

1) Мне не известны значения оси y

2)Мне нужно установить показатель степени (степень 10) в метке оси автоматически

enter image description here

1 Ответ

3 голосов
/ 18 марта 2019

Вам нужно знать порядок величины, прежде чем строить график.Вы можете получить это через stats.Затем разделите ваши значения y на коэффициент, который (в приведенном ниже примере) выбран таким образом, чтобы на осях тиков отображались значения от 0 до 100.

Код:

### automatic prefactor in axis scaling and axis label
reset session

# generate some random data
set samples 20
RandomMagnitude = floor(rand(0)*20-10)
RandomValue = rand(0)
set table $Data
    plot '+' u 0:(RandomValue*10**RandomMagnitude/($0)) with table
unset table

# get the maximum via stats
stats $Data u 2 nooutput
Max = STATS_max

PrefactorLog = ceil(log10(Max))-2
Prefactor = 10**PrefactorLog

set ylabel sprintf("Y-title, x 10^{%d} units",PrefactorLog)
set format y "%g"
set boxwidth 0.7 relative

plot $Data u 1:($2/Prefactor) with boxes fs solid 1.0 fc rgb "red" ti sprintf("Max value %.2e", Max)
### end of code

результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...