Построение диаграмм рассеяния с парами в R, в логарифмическом масштабе с данными, содержащими нули - PullRequest
3 голосов
/ 20 января 2011

Я пытаюсь построить несколько пар диаграмм рассеяния, используя «пары». Мой фрейм данных выглядит так:

    >e
    X Y Z
    0 0 0
    2 3 4
    0 3 4
    3 3 3

Полностью стандартный фрейм данных здесь.

Я использую это для построения графиков рассеяния, опять же, ничего особенного:

pairs(~X+Y+Z, data=e, log="xy")

Отлично работает, но не наносит метки. Однако, если я удаляю log = "xy" в команде, тогда метки отображаются правильно. Так что я думаю, это связано с тем, что я хочу, чтобы мои диаграммы рассеяния были в логарифмическом масштабе.

Итак, мой вопрос: что мне делать? Должен ли я удалить все строки с нулями в нем перед рукой (как вы это делаете?) Есть ли магический трюк, который позволит мне иметь log = "xy" и пометить мои диаграммы рассеяния?

Пожалуйста, дайте мне знать, если это не ясно.

1 Ответ

7 голосов
/ 20 января 2011

Вы проигнорировали это (где я назвал ваш фрейм данных DF):

R> pairs(~X+Y+Z, data=df, log="xy")
There were 30 warnings (use warnings() to see them)

, и если вы посмотрите на эти тридцать предупреждений, вы увидите, что

  • вы не можете отобразить данные, содержащие нули в логарифмическом масштабе (и, я думаю, вы знаете, почему)

  • log не является распознанным параметром для pairs()

Так что, если вы хотите построить парный график в журналах, вам, возможно, придется взять журналы самостоятельно (и либо добавить небольшой эпсилон, либо использовать преобразование типа log(1 + x) и вызвать pairs() для этих данных.

Редактировать Самый простой, вероятно, pairs(~X+Y+Z, data=log(1+DF))

...