Когнитивная психология и эмоции
Субъективные заметки аспиранта-психолога
Записи в рубрике «ggplot2»

Grouped forest plots using ggplot2

19 июля 2012, анализ данных Метки: , , , , ,

I decided to write this post in English, as I need to practice in writing more.

As I currently do some meta-analytic stuff, I needed to get a proper plot of the results of analysis. The existing solutions are hard to customize, so I decided to do something by myself. Basically, the forest plot is a errorbar plot of effect sizes, plus a list of studies, plus some other stuff, usually a list of effect sizes.
продолжение »

Задачка на сегодня

15 июля 2012, анализ данных Метки: , , , , ,

Задачка на сегодня — научиться рисовать такую хрень подобного рода таблографик в ggplot2.

"Лесной" график (forest plot) из metafor

«Лесной» график (forest plot) из metafor

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

Установка TrueType шрифтов (TTF) в R

2 июля 2012, анализ данных Метки: , , , ,

Если вы когда-либо делали графики с русскими подписями в R, то знаете, что периодические появляются проблемы со шрифтами. То буквы слипаются, то вообще одни точки, то еще что. Например вам может выдаваться что-нибудь типа такого:

Warning: conversion failure on 'контроль' in 'mbcsToSbcs':
dot substituted for <ba>

Большую часть этих проблем можно решить с помощью tikz, если вы работаете с pdf. Однако для экспорта в виде растровых (png, jpeg) изображений такой вариант не очень подходит. Убив пару часов я-таки нашел способ, как можно побороть большую часть проблем. Дело в том, что в используемых по умолчанию шрифтах (тех, которые использует postscript) все крайне плохо с кириллицей. Однако просто взять и указать какие-то системные шрифты вместо стандартных не получится. Postscript жаждет видеть только шрифты в определенном формате, а именно в формате afm, а большинство используемых системы шрифтов хранятся в формате True Type Font (ttf). Кроме того, после конвертации их еще надо импортировать, что тоже не очень тривиально. Для того, чтобы решить все проблемы разом есть прекрасный пакет extrafont. Для того, чтобы все заработало, нужно установить пакет, а затем выполнить команду font_import(). Она автоматически находит все шрифты в системе и конвертирует их в нужный формат. После чего можно посмотреть, какие шрифты доступны с помощью fonttable() или fonts(). После этого для использования шрифтов вам достаточно будет подгрузить их с помощью команды loadfonts() и указать нужный шрифт при создании графика. Например:

library(ggplot2)
library(gridExtra)
png('fonttest%03d.png', width=450,height=450)
p <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()+
xlab("Много-много русских буков")+ylab("Русские буковы по вертикали")
 
#шрифт по умолчанию
grid.arrange(p + theme_gray(base_family="sans"),
p + theme_gray(base_family="Impact"),
p + theme_gray(base_family="FreeMono"),
p  + theme_gray(base_family="Droid Serif"))
dev.off()
Пример использования TrueType шрифтов в R

Пример использования TrueType шрифтов в R

Под Windows для работы пакета вам также понадобится указать путь к Ghostscript:

Sys.setenv(R_GSCMD="C:/Program Files/gs/gs9.05/bin/gswin32c.exe")

Точечная гистограмма в R (dotplot, ggplot2)

25 марта 2012, анализ данных Метки: , , , ,

В ggplot2 версии 0.9.0 добавился интересный вариант визуализации данных — dotplot. По сути это гистограмма, которая отражает напрямую количество наблюдений. Не знаю, как это по другому описать, просто взгляните на график:

Dotplot + density plot, ggplot2

Dotplot + density plot, ggplot2

Линиями отражено распределение плотности, «точками» — наблюдения. Шкала x — средняя точность ответов. Данные представлены для двух групп из одного из моих экспериментов. На графике четко видно, что в обеих группах есть люди, которые просто не прочитали инструкцию, или прочитали неправильно (точность 0.1 — правильный ответ на уровне шанса) =)

Делается такой график вполне просто:

> ggplot(data=art_ev_aggr,aes(x=accuracy)) 
+ geom_density(aes(linetype=factor(target_time),y=..scaled..)) 
+ geom_dotplot(dotsize = .5,aes(size=2, fill=factor(target_time)))
+ labs(fill="Target time", linetype="Target time")

Красивенькие коррелограммы в R

15 марта 2011, заметки Метки: , , , ,

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

продолжение »