Как построить таблицу R в терминале Linux

Вопрос или проблема

У меня есть текстовый файл, который я преобразовал в числовой вектор:

numbers <- scan("list_of_numbers.txt")

Затем я поместил его в таблицу:

t <- table(numbers)

Которая выводит следующий результат:

  1      2      3      4      5      6      7      8      9     10     11 
621266 496647 436229 394595 353249 305882 253983 199455 147380 102872  67255 
12     13     14     15     16     17     18     19     20     21     22 
41934  24506  13778  7179   3646   1778   816    436    217    114    74 
23     24     25     26     27     28     29     30     31     32     33 
49     44     26     21     19     21     20     14      9     17     14 
34     35     36     37     38     39     40     41     42     43     44 
 7     11      9     14      3      5      8      4      4      2      3 
45     46     47     55     56     60     62     63     69     70     72 
 2      1      2      2      2      1      1      1      3      2      1 
78     82     85     93     95     114    125    265    331    350 
 1      1      1      1      1      1      1      1      1      1 

Как я могу построить линейный график с осью x от 1 до 25 и с частотными значениями по оси y непосредственно в окне терминала?

Кроме того, как можно просмотреть такой график (который по умолчанию сохраняется в .pdf файл) в терминале Linux?

Большинство команд, таких как less, cat, и xdg-open, выводят кучу странных нечитаемых символов. Я работаю через ssh-сервер.

Вы хотите отображение в ASCII (т.е. в терминале)? График через X11? Выходное устройство имеет значение (так как R может строить графики на многих устройствах).

Если вы используете переадресацию X11 через ssh и у вас R в интерактивной сессии, тогда:

plot(t[1:24], type = "l")

должно открыть базовый линейный график в новом окне X11. Выполните ?plot в R для получения дополнительных опций по настройке формата.

Вы можете специально задать вывод на X11, если это не сработает следующим образом:

x11(width = 8, height = 8)
plot(t[1:24], type = "l")
dev.off()

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

Также существует устройство вывода в PDF в R, которое работает так же, как пример с X11 выше, но генерирует вывод в файл:

pdf(file = "filenameyoudesire.pdf", width = 8, height = 8)
plot(t[1:24], type = "l")
dev.off()

Существуют и другие методы построения и форматирования графиков, но этого должно быть достаточно для начала.

Также, несмотря на то что R достаточно умен, чтобы понять разницу, t также является встроенным именем функции (выполните ?t в R, чтобы узнать, что она делает), так что стоит избегать использования его в качестве имени переменной.

Ответ или решение

Для того чтобы построить график таблицы в R в терминале Linux, следуйте данным шагам. Вам необходимо построить график в терминальной среде и представить его в текстовом формате, поскольку стандартные утилиты, такие как less, cat, или xdg-open, не могут открыть стандартные графические форматы.

Пошаговая инструкция:

Шаг 1: Установка необходимых R-пакетов

  1. Убедитесь, что R установлен:
    Откройте терминал и выполните команду R для входа в интерактивную сессию R.

  2. Устанавливаем пакет txtplot:

    install.packages("txtplot")

Шаг 2: Загрузка данных и построение графика

  1. Считывание данных из файла:

    numbers <- scan("list_of_numbers.txt")
  2. Создание таблицы частот:

    frequency_table <- table(numbers)
  3. Построение ASCII-графика с помощью txtplot:

    library(txtplot)
    txtplot(names(frequency_table)[1:24], frequency_table[1:24], xlab = "Числа", ylab = "Частота", type = "l")

Шаг 3: Дополнительные рекомендации

  • Используйте осмысленные имена переменных: Избегайте использования t как имени переменной, поскольку это может привести к путанице (в R t() – это функция для транспонирования).

  • Установите X11 для графической визуализации:
    Если у вас есть доступ к графической среде через X11, то используйте следующие команды для графической визуализации:

    x11(width = 8, height = 8)
    plot(frequency_table[1:24], type = "l")
    dev.off()
  • Печать в PDF:
    Если ASCII-графика недостаточно или вы хотите сохранить результаты, создайте PDF-файл:

    pdf(file = "output.pdf", width = 8, height = 8)
    plot(frequency_table[1:24], type = "l")
    dev.off()

Заключение

Использование txtplot позволяет визуализировать данные непосредственно в терминале в формате ASCII-графика, что особенно полезно в условиях работы через SSH на сервере без графического интерфейса. При более сложных задачах или для сохранения изображения для последующего анализа, графики можно сохранять в формате PDF.

Оцените материал
Добавить комментарий

Капча загружается...