Масштабировать значения / метки на оси - PullRequest
1 голос
/ 07 июля 2019

Ive набор данных с диапазоном значений ниже,

x from 0 to 100

y from 0.0 to 10.0^10

Я использую функцию plot, чтобы нарисовать график plot(x, y). График нарисован, но с приведенным ниже предупреждением о преобразовании значений y из целого числа в число с плавающей точкой.

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "1e+10" 10000000000,  "2e+10" 20000000000,  "3e+10" 30000000000,  "4e+10" 40000000000,  "5e+10" 50000000000,  "6e+10" 60000000000,  "7e+10" 70000000000) textcolor rgb "#262626" font ",10";
line 2: warning: integer overflow; changing to floating point

Значения y уже находятся в float, но не уверены, почему выдается это предупреждение. Можно ли установить явное форматирование ( Спецификаторы формата ) на axis или ytics?

Аналогичный вопрос размещен в здесь . Но похоже, что это gnuplot команды / опции. Как использовать те же опции в октаве plot?

1024 * Отредактированный *

Код

> 
> 
> x = round(rand(10)(1,:) .* 100)
x =

   76   13   11   79   72   78   36    8   21   63

> y = rand(10)(1,:) .* 1e+10
y =

   5836992276.93708   6471394539.45494   7847697654.87665   2495557143.74836   2694348406.60242   9736785473.26907    756349861.48275   9948115214.16169   4768610059.59765   6621668613.33630

> plot(x,y)

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "2e+09" 2000000000,  "4e+09" 4000000000,  "6e+09" 6000000000,  "8e+09" 8000000000,  "1e+10" 10000000000) textcolor rgb "#262626" font ",10";
                                                                                        ^
           line 0: warning: integer overflow; changing to floating point

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "2e+09" 2000000000,  "4e+09" 4000000000,  "6e+09" 6000000000,  "8e+09" 8000000000,  "1e+10" 10000000000) textcolor rgb "#262626" font ",10";
                                                                                                             ^
           line 0: warning: integer overflow; changing to floating point

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "2e+09" 2000000000,  "4e+09" 4000000000,  "6e+09" 6000000000,  "8e+09" 8000000000,  "1e+10" 10000000000) textcolor rgb "#262626" font ",10";
                                                                                                                                  ^
           line 0: warning: integer overflow; changing to floating point

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "2e+09" 2000000000,  "4e+09" 4000000000,  "6e+09" 6000000000,  "8e+09" 8000000000,  "1e+10" 10000000000) textcolor rgb "#262626" font ",10";
                                                                                                                                                       ^
           line 0: warning: integer overflow; changing to floating point

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "2e+09" 2000000000,  "4e+09" 4000000000,  "6e+09" 6000000000,  "8e+09" 8000000000,  "1e+10" 10000000000) textcolor rgb "#262626" font ",10";
                                                                                        ^
           line 0: warning: integer overflow; changing to floating point

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "2e+09" 2000000000,  "4e+09" 4000000000,  "6e+09" 6000000000,  "8e+09" 8000000000,  "1e+10" 10000000000) textcolor rgb "#262626" font ",10";
                                                                                                             ^
           line 0: warning: integer overflow; changing to floating point

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "2e+09" 2000000000,  "4e+09" 4000000000,  "6e+09" 6000000000,  "8e+09" 8000000000,  "1e+10" 10000000000) textcolor rgb "#262626" font ",10";
                                                                                                                                  ^
           line 0: warning: integer overflow; changing to floating point

multiplot> set ytics in scale  1.4 border mirror ( "0" 0,  "2e+09" 2000000000,  "4e+09" 4000000000,  "6e+09" 6000000000,  "8e+09" 8000000000,  "1e+10" 10000000000) textcolor rgb "#262626" font ",10";
                                                                                                                                                       ^
           line 0: warning: integer overflow; changing to floating point
> 
> 
> 

выход

Resulting Graph

1 Ответ

0 голосов
/ 07 июля 2019

Может быть, это то, что вы ищете? Хотя 1e10, записанное как 10000000000, не очень «удобно».

set xrange[0:100]
set yrange[0:1e10]

set format y "%.0f"

plot exp(x)

enter image description here

...