Управление форматированием чисел на оси R графиков - PullRequest
10 голосов
/ 05 августа 2010

У меня есть некоторые 100К значений.Когда я рисую их в виде линии в R (используя plot(type="l"), числа рядом с отметками оси x печатаются в научном формате (например, 0e+00,2e+04,...,1e+05). Вместо этого я хотел бы, чтобы они были:

A) 0,20kb,...,100kb

B) то же самое, но теперь первая координата должна быть 1 (т. Е. Начинать отсчет с 1 вместо 0).

BTW R массивыиспользовать нумерацию, начинающуюся с 1 (в отличие от массивов в perl, java и т. д.), поэтому мне интересно, почему при построении «они» решили начинать с 0 ...

Ответы [ 2 ]

9 голосов
/ 05 августа 2010

A)

R> xpos <- seq(0, 1000, by=100)
R> plot(1:1000, rnorm(1000), type="l", xaxt="n")
R> axis(1, at=xpos, labels=sprintf("%.2fkb", xpos/1000))

B) то же, что и выше, отрегулируйте xpos

1 голос
/ 21 марта 2016

Вопрос довольно старый, но когда я искал решения для описанной проблемы, он был оценен довольно высоко.Поэтому я добавляю этот - довольно поздно - ответ и надеюсь, что это может помочь некоторым другим :-).

В некоторых ситуациях может быть полезно использовать места для отметок, которые предлагает R.R предоставляет для этой цели функцию axTicks.Возможно, он не существовал в R2.X, но только с R3.X.

A)

myTicks = axTicks(1)
axis(1, at = myTicks, labels = paste(formatC(myTicks/1000, format = 'd'), 'kb', sep = ''))

B)

Если вы наносите данные типа plot(rnorm(1000)),тогда первое значение x равно 1, а не 0. Следовательно, нумерация автоматически начинается с 1. Возможно, это была проблема с предыдущей версией R?!

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