LINUX.ORG.RU

Впервые пишем на R. Критикуйте

 , , , ,


1

1

Собрали тут давеча в ходе очередного тулкитосрача свежую статистику. Ну и покуда вбрасывали подобное ранее — решили собрать старые срезы и построить график ;)

Исходные данные (первый срез не Наш, но тоже учли ;))

С Python+Matplotlib много лишнего пердолинга, с TeX+TikZ и подавно, с табличными процессорами и вовсе связываться лишний раз не хотим — решили в этот раз попробовать R.

(ожидания не очень оправдало, но в основном потому, что данные очень sparse, а так выглядит довольно заточенным под задачу ;))

pdf(file="guitoolkits_timeline.pdf")

dates <- c(as.Date('2008-02-28'), as.Date('2014-08-25'), as.Date('2017-08-10'), as.Date('2019-01-22'), as.Date('2020-09-08'))
gtk2 <- c(1466, 1289, 2373, 1455, 588)
gtk2_dates <- dates[1:5]
gtk3 <- c(525, 1017)
gtk3_dates <- dates[c(2, 5)]
qt4 <- c(1374)
qt4_dates <- dates[c(2)]
qt5 <- c(185, 1851)
qt5_dates <- dates[c(2, 5)]

plot(dates, gtk2, type="o", pch="o", lty=1, ylim=c(0, 3000), ylab="dependants")
points(gtk3_dates, gtk3, pch="*")
lines(gtk3_dates, gtk3)
points(qt4_dates, qt4, pch="+")
lines(qt4_dates, qt4)
points(qt5_dates, qt5, pch="#")
lines(qt5_dates, qt5)

legend(as.Date('2008-01-01'), 3000, legend=c("GTK+2", "GTK+3", "Qt4", "Qt5"), pch=c("o", "*", "+", "#"), lty=1, ncol=1)

Выхлоп

cast @wandrien

Если тебе графики нужно нарисовать, то смотри в сторону https://root.cern.ch — гадость кончено, как и C++, но альтернативами к сожалению не богато.

ТС, не слушай больных на всю голову граждан. В R прекрасный пакет для рисования графиков, без преувеличений, один из самых лучших.

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

А нету, оно умерло раньше, чем Мы собрали очередную статистику ;D Весь график состоит из ма-а-аленького плюсика.

Недавно как раз вычищали его ошмётки из системы, ибо Qt5 с какой-то версии стал с ним конфликтовать, посему не хотел обновляться, а равно как и софт на Qt5 ставиться. Пару программ удалили (qemuctl, например); иные пришлось пересобирать руками.

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

Дак Мы только сходу кучу разных библиотек нашли (plotly, ggplot2, ещё чего-то), которые решают какие-то фатальные недостатки штатного plot. Но заюзывать не стали. Точно один из самых лучших? ;)

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

Недавно как раз вычищали его ошмётки из системы, ибо Qt5 с какой-то версии стал с ним конфликтовать, посему не хотел обновляться, а равно как и софт на Qt5 ставиться. Пару программ удалили (qemuctl, например); иные пришлось пересобирать руками.

В какой ОС такой винегрет?

У меня прекрасно стоят обе версии. Что-то там от него еще зависит, вроде.

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

Посмотри какую-нибудь книжку по R на тему рисования графиков. Там действительно всё есть, только приноровиться нужно. Там же генерацию отчётов автоматическую можно наладить.

Можно глянуть, например, здесь для начала.

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

На сях — это, позвольте-с, голый SDL взять или там Cairo, и вручную графичек рисовать, масштабы рассчитывая, диапазоны, тики и прочее, как в школе на бейсике? Или чего предлагаете?

mertvoprog ()

Поддержу остальных регистрантов, в R офигенные возможности по построению графиков, при минимуме затраченных усилий. Для графиков советую ggplot2, или стандартный plot. В качестве pdf устройства рекомендую cairo_pdf.

Как правильно заметил evgeni, R великолепно интегрируется с LaTeX, при помощи пакета knitr.

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

С Python+Matplotlib много лишнего пердолинга, с TeX+TikZ и подавно, с табличными процессорами и вовсе связываться лишний раз не хотим — решили в этот раз попробовать R.

Нынче модно Julia использовать

O02eg ★★★★★ ()
Ответ на: комментарий от i-rinat

Обнадёживающий график; по нему наглядно видна мммэдленная агония GTK+1. Мы чуть-чуть его не застали ;)

Хотя вот на опеннете нашли среди исходников XviD полезную тулзу на GTK+1, всё никак не доберёмся собрать.

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

Ну так и думали ;)

Предложения какие будут?

Вот с этой кучей диапазонов для оси Ox определённо надо что-то делать. Но что? Пробовали sparseVector использовать, но plot их не поддерживает, на пустых местах тупо падает в 0, а не пропускает их.

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

Уродлив, крив и ещё с кодировками шляпа, юникод там через одно место работал. На примере Cinelerra (там вообще свой велосипед для рисования GUI) можешь познать всю боль (хотя её более-менее вылизали уже). Примерно такой же и gtk1 был по качеству.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от peregrine

Ну вот AzPainter тоже на своём велосипеде, что-то особо боли не видим. У Cinelerra главная проблема в россыпи окон ;D

юникод там через одно место работал

Ну то есть для фанатов восьмибитных кодировок сойдёт, ясно.

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

боль

Это случайно не песня про «хорошего» танцора, которому что то мешает? Каждый раз одно и то же:

while (NEW>OLD)
{

выходит новый тулкит, например Qt4 или Gtk3, так старый тут же «становится» говнищем, а новый произведением искусства.

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

Примерно такой же и gtk1 был по качеству.

Зато он нормально работал на второпне даже, а гтк2 тормозил знатно. Хрюникод тогда был никому не нужен. Вообще, и сейчас можно собрать древности с гтк1 и убедиться, что ничего особо ужасного там нет. По «качеству» я думаю у гтк3 конкурентов нет.

bread ()