LINUX.ORG.RU

R — данные и графики

 , , ,


0

0

По согласованию с редакцией Linux Format выложил в открытый доступ "R — данные и графики" — вторую часть из цикла статей по R. Там же по ссылке лежат исходные коды команд к статьям в Rnw-формате и результаты их выполнения в pdf.

Из Википедии: R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.

Осенью планируется продолжить цикл (запланировано 4 статьи, начиная с сентября). Если есть пожелания, то их самое время высказать.

P.S. Если в тексте будет найдена ошибка, то дайте знать — исправлю. Сам текст немного отличается от журнальной статьи и в дальнейшем будет развиваться.

>>> Подробности

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: CYB3R (всего исправлений: 1)

Ответ на: комментарий от anonymous

R и есть среда, там мощнейшее дополнение кода есть.Кроме того можно прекрасно редактировать объекты. Скорость работы наибольшая у меня в командной строке. Мне вообще нравиться парадигма работы в R когда первичными являются данные. Очень редко бывают случаи обработки данных когда выигрышной становится парадигма первичности кода.

Хистори ведется автоматически и ничего из кода я не теряю и всегда могу повторить расчеты.

anonymous
()
Ответ на: комментарий от Evgueni

"красивые данные" - да согласен, те которые понятные. но я о "красивой визуализации"

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

сделать диаграмму, график, такми, что бы было желание задержать на ней взгляд )))

про субъективизм - точно красота субъективна - т.е. пакет для визуализации должен обладать настройками для изменения "рюшечек"

для пакета обработки стат данных это всё не нужно...

anonymous
()
Ответ на: комментарий от anonymous

пишите функции, я еще не видел ни одной цельной задачи для которой понадобилось больше страницы текста. Функция прекрасно вызывается на редактирование в редакторе указанном в переменной окружения.

anonymous
()
Ответ на: комментарий от anonymous

> "красивые данные" - да согласен, те которые понятные. но я о "красивой > визуализации"

> банально - когда столбики в биаграммке можно позаливать несколькими > градиентами, что бы выглядели объемными, наложить тени, как минимум > двойное сглаживание, антиалиасинг. различные шрифты (например > утвержденные как корпоративный стандарт) простой способ добавлять > комментарии и тд и тп.

все по ссылке сделано в R (!и все это не через гуй отрендерено! как в не будем называть другие продукты, понадобится 50см на 50см сделать вывод и будет хорошо)

http://addictedtor.free.fr/graphiques/allgraph.php?sort=votes

anonymous
()
Ответ на: комментарий от anonymous

> что конкретно Вы отлаживаете в R. Покажите код.

У меня просто сложный кастомный график с наложениями и подписями, + функции для обсчёта.

anonymous
()
Ответ на: комментарий от anonymous

тогда любой пример подходящий из галереи развить

чем например это не сложный график?

http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=114

иногда удобно делать сложные подписи в графике в связке с LaTeX, заменяются метки в ps на сгенерированное в LaTeX.

anonymous
()
Ответ на: комментарий от anonymous

>е по ссылке сделано в R (!и все это не через гуй отрендерено! как в не >будем называть другие продукты, понадобится 50см на 50см сделать вывод >и будет хорошо)

>http://addictedtor.free.fr/graphiques/allgraph.php?sort=votes http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=9

какое уродство - шрифт не читаемый - весь в "зубчиках", на диаграме линии разной толщины...

всё одного цвета какой столбец к чему относится... можно понять, только после длинтельного вглядывания в легенду...

такое впечатление, что на спектруме нарисованно...

anonymous
()
Ответ на: комментарий от anonymous

> тогда любой пример подходящий из галереи развить

Учить меня тут будешь?

Серьёзные недостатки есть, факт, надо над ними работать.

anonymous
()
Ответ на: комментарий от Evgueni

>А что такое "отладка скриптов" с вашей точки зрения?

Это когда мкрипт отлаживается, а не как у всяких тутошних сразу запускается.

anonymous
()
Ответ на: комментарий от anonymous

нет все таки тебя научить не смогу, тут наверное хирург нужен :)

приведи _конкретные_ недостатки. Или все сводится что ты не смог сверстать номер плейбоя в R ?

anonymous
()
Ответ на: комментарий от anonymous

ты его так на сайте рассматривал только, или попробовал в R исходник загрузить? и например на А4 вывести в векторе?

PS ... и где там "столбцы"?

anonymous
()
Ответ на: комментарий от anonymous

> То есть тебе все равно на чужое мнение?

на твое унылый тролчег наплевать даже твоей девушко

anonymous
()
Ответ на: комментарий от anonymous

> Это когда мкрипт отлаживается, а не как у всяких тутошних сразу запускается.

скрипт в студию!

anonymous
()
Ответ на: комментарий от anonymous

только на сайте

мне на принтер НЕ НУЖНО, мне нужно вставить в презентацию и показать проектором на экране 4Х4 метра.

и то что я увидел на сайте - отсутствие антиалиасинга. (чайник выглядит просто уродски)

или он там таки есть?

anonymous
()
Ответ на: комментарий от anonymous

Он сейчас в отладке...завтра может быть.

anonymous
()

спасибо за статью, не когда не слыхал про него, да и вообще про аналогичные проекты. Вот сейчас попробую разобраться j4f.

gln0fate ★★
()
Ответ на: комментарий от anonymous

> только на сайте

зря

> мне на принтер НЕ НУЖНО, мне нужно вставить в презентацию и показать проектором на экране 4Х4 метра.

Расскажу небольшую притчу, как предисловие есть такие детские развивающие игрушки, в шаблоны надо вкладывать всякие кубики, шарики и пирамидки. Тест интелекта так скать. Ну и резуме применения такого теста. "Как известно курсанты училища МВД деляться на умных и очень сильных".

тут проблема какая, дисплей и проектор имеют ужасно низкое разрешение. Думаю что надо вывод делать в векторный формат причем указывать большой размер листа. Ну естественно шрифты откорректировать придется, по дефаулту для печати.

Ну а потом все претензии к программе просмотра результирующего pdf/ps

Сильная сторона R это возможность подготовить динамическую презентацию со всякими ползунками и динамически изменяющейся в результате нехилых расчетов графикой.

Для статики (осутствия необходимости динамически решать в присутствии публики) используйте блендер какой или opendx

anonymous
()
Ответ на: комментарий от anonymous

ок, я не претендую на умного.

Я тупо спрашиваю: антиалиасинг есть или нет?

что нить хотя бы вот такое http://www.ixbt.com/cpu/intel-c2d-e6550-e6850-e8200-e8500.shtml нарисовать можно? если не знаешь так и скажи... для тупых, которые ниразу не юзали R.

не так уж и мало 1900х1600... но дело не в том что этого мало, а в том, что на этом маленьком разрешении качество исходной картинки - тоже очень важно.

anonymous
()
Ответ на: комментарий от anonymous

я только хотел сказать что каждый инструмент хорош ровно настолько насколько корректны условия и способ его применения. :-|

антиальясинг есть, но это возможно Вам не поможет, это забота устройства вывода

Quartz device

The quartz device is the native graphic device in R for Mac OS X. It's name derives from Apple's Quartz Technology which is essentially similar to PDF rendering. One of the most amazing features of Quartz is antialiasing which gives you very nice plots and images. Try to compare a quartz plot with the same plot generated on any other interactive device. For its PDF nature it is also resolution independent.

Saving the image

You can can the content of the quartz device window into a PDF file. This is a very simple way to export high quality graphics from R into other applications on Mac OS X graphics is PDF based (so are almost all applications available). However, this process uses R's PDF device and not Mac OS X PDF facilities and thus doesn't yeild an exact copy of the device contents.

Поэтому если Вы продолжаете настаивать на выводе не векторных диаграм.

так как на ibxt выведены графики сделать можно. Я видел как то страничку с рецептами построения этого (там были и фон и градиенты у столбцов и полное отсутствие художественного вкуса автора :), но меня такие дианраммы совершенно не заинтересовали и линка я не сохранял.

такое проще рендерить в блендере (нащет opendx я погорячился наверное) и поражать всех тенями и трехмерностью. Скорее всего и скриптом это удастся сделать.

anonymous
()
Ответ на: комментарий от anonymous

>банально - когда столбики в биаграммке можно позаливать несколькими градиентами, что бы выглядели объемными, наложить тени, как минимум двойное сглаживание, антиалиасинг. различные шрифты (например утвержденные как корпоративный стандарт) простой способ добавлять комментарии и тд и тп.

Сдаётся мне, тут надо чем-то другим пользоваться. Сперва сгенерировать векторный рисунок в R, а потом разукрашивать его. Может вручную, может xslt преобразованиями какими для svg.

anonymous
()
Ответ на: комментарий от Shalakhin

GUI и IDE:

python + rpy + R + eclipse + pydev: особенно удобно использовать как дебагер.

или

sage: много Open Source математических програм к питону прикручены.

или

IDE: emacs: Ъ

anonymous
()
Ответ на: комментарий от anonymous

> Может вручную, может xslt преобразованиями какими для svg.

Цветные карандаши рулят :) Типа ручная работа.

Evgueni ★★★★★
() автор топика

Спасибо. Как раз возникла необходимость кое-что посчитать, а ничего толковее, чем запустить statistica под wine, не придумал. Сейчас вот с rkward разбираться буду.

malices_gossips ★★★
()
Ответ на: комментарий от anonymous

Есть, разумеется. Надо просто помнить, что R не привязан к графическому устройству. Где точно есть: PDF, PostScript, SVG (RSvgDevice), а ежели напрямую на экран -- то Cairo, JavaGD.

plantago
()
Ответ на: комментарий от anonymous

Зачем Вам столбики в диаграмме объемные? У Вас 3D данные?

plantago
()
Ответ на: комментарий от Correctnoe_imya_polzovatelya

Этот язык был "задолго до того как" :) А учитывая его прямых предшественников, так и вообще "с самого начала".

APL среда, только стали объекты вместо массивов передавать :)

anonymous
()

2Evgueni
> Из Википедии: R — язык программирования для статистической обработки данных

Перепрочитал
http://cran.r-project.org/doc/manuals/R-lang.html
Обьясните, что в нем такого особенного, что позволяет легче
работать с статистическими данными? Не понимаю!
В чем "заточенность" на "статистику"?
IMHO, "испорченный" C/C++-образный язык.

Наличие CRANа - ничего о примуществе языка не говорит.

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

#процедура дискриминантного анализа разделяющая смесь двух многомерных распределений library(MASS) biplot(prcomp(x.summary)) gut<-x.summary[prcomp(x.summary)$x[,1]>1.5,] schleht<-x.summary[prcomp(x.summary)$x[,1]<=0,] tr <- rbind(gut,schleht) cl <- factor(c(rep("g",length(gut[,1])), rep("s",length(schleht[,1])) )) z <- lda(tr, cl) plot(z) class.g.s <- predict(z, x.summary)$class plot(prcomp(x.summary)$x[,c(1,2)], pch=21, bg=c("red", "green3")[unclass(class.g.s)])

это _полностью_ проведенный анализ тестирования уровня знаний по предмету математика с разделением "ангцев от козлищ" и верификацией корректности составления самого теста.

сделайте это компактней на любом дургом языке.

anonymous
()
Ответ на: комментарий от Valeriy_Onuchin

#процедура дискриминантного анализа разделяющая смесь двух многомерных распределений
library(MASS)
biplot(prcomp(x.summary))
gut<-x.summary[prcomp(x.summary)$x[,1]>1.5,]
schleht<-x.summary[prcomp(x.summary)$x[,1]<=0,]
tr <- rbind(gut,schleht)
cl <- factor(c(rep("g",length(gut[,1])), rep("s",length(schleht[,1])) ))
z <- lda(tr, cl)
plot(z)
class.g.s <- predict(z, x.summary)$class
plot(prcomp(x.summary)$x[,c(1,2)], pch=21,  bg=c("red", "green3")[unclass(class.g.s)])

это _полностью_ проведенный анализ тестирования уровня знаний по предмету математика с разделением "ангцев от козлищ" и верификацией корректности составления самого теста.

сделайте это компактней на любом дургом языке.

anonymous
()
Ответ на: комментарий от Valeriy_Onuchin

надо не читать спеки языка а прочитать пример сессии из введения в среду (как там и рекомендовано).

anonymous
()
Ответ на: комментарий от anonymous

> надо не читать спеки языка а прочитать пример сессии
in progress ...

Valeriy_Onuchin ★★
()
Ответ на: комментарий от anonymous

>#процедура дискриминантного анализа разделяющая смесь двух многомерных >распределений
>library(MASS)

btw, в каком пакете она находиться MASS? VR?

>сделайте это компактней на любом дургом языке.

1. "комапктно" - это не критерий приемущества языкa.
Есть языки, которые позволяют писать очень
"компактный" код, но никуда не годные.

2.здесь используется специальная "library(MASS)", которая все и делает
"комапктно".

3. Уверяю, что можно написать аналогичный класс
в C++, kоторый позволит то же самое написать не менее "компактно"

btw, gut/schleht - это allemand?

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

1 library(MASS) в данном случае содержит всего одну единственную функцию lda.

2 функция plot() основного пакета ничего не знала о пакете MASS, überraschend?

короче --- хде примеры кода Валерий?

PS beziehungsweise lyagushatnik?

anonymous
()
Ответ на: комментарий от anonymous

может я был резок но виновато исключительно французское красное :)

"компактность кода" для языка который является просто интерфейсом к среде это основное качество. Очень приятно одной строчкой кода проверять пришедшую в голову идею по анализу данных, а страницей кода строить арм для конкретной задачи анализа.

Среды анализа данных прошли длинную эволюцию и R на мой взгляд впитал в себя все лучшее из предшественников.

В APL в борьбе за компактность доходило до изобретения своего алфавита: один символ --- одна функция/оператор... Ну это крайность которая одновременно и помешала продвижению языка. Второй шанс APL потерял когда статграфикс распространялся без доступа к консоли.

anonymous
()
Ответ на: комментарий от anonymous

> так что бы было реально КРАСИВО...

Легко. Запросто. В eps, в цвете.

anonymous
()
Ответ на: комментарий от anonymous

Уверяю вас, все, кто серьёзным анализом занимаются, никогда не используют ГУЙню. Правда, R всё равно они (финансисты, медики, антропологи, и т.п.) считают слишком сложным, и используют язык Stata. R же - выбор математиков-статистиков в большей степени, практики её пока побаиваются за некоторую косолапость.

А гуйня - это только для студентов, причем не всех, а только плохих и очень плохих.

anonymous
()
Ответ на: комментарий от ptarh

Видимо, не такие уж они в вашей провинции профессиональные.

anonymous
()
Ответ на: комментарий от Valeriy_Onuchin

> В чем "заточенность" на "статистику"?

Ты фанатичный C++-ник, ты никогда даже самых простых вещей не поймёшь, лучше и не напрягаться.

Ну откуда тебе знать, что такое семантика языка? Откуда знать про систему типов, позволяющую легко оперировать векторами и матрицами? Откуда тебе разглядеть там лямбды? Ты мыслишь в плоских и примитивных терминах C++. Увидел фигурные скобочки в языке, и всё, он заклеймлён подобием с этим ничтожным убожеством "С++".

anonymous
()

Народ, а подскажите пожалуйста, чем на Linux можно оцифровать фотографию, чтобы получить из неё простую таблицу вида:

x y R G B


По сути дела, нужно из фотографии сделать 3D plot (что-то типа вот этого оффтопа: http://www.imagedig.com/page7.html).

Вообще-то, 3D я и сам нарисую, но КАК из картинки данные вытащить???

garry
()
Ответ на: комментарий от anonymous

> Хоть я и ненавижу линупс, но за R спасибо. Использую.

5.5 Удаляйте коммент.

naryl ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

> 1. "комапктно" - это не критерий преимущества языкa.

Преимущество, преимущество, особенно в случае интерактивного анализа. Это одна из причин по которой paw на плаву до сих пор когда давно уже есть ROOT.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от garry

>Народ, а подскажите пожалуйста, чем на Linux можно оцифровать фотографию, чтобы получить из неё простую таблицу вида:

> x y R G B

А разве формат bmp это по сути не оно?

Evgueni ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.