Статьи

Немного веселья с визуализацией R


Первоначально опубликовано
Вадим Ткаченко


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

Условия теста те же, что и в предыдущем посте, с той разницей, что результаты для 4 и 16 таблиц работают под управлением MySQL 5.5.20.

Позвольте напомнить вам, как я делаю измерения. Я запускаю тесты в течение 1 часа с измерениями каждые 10 секунд.
Итак, у нас 360 баллов — метрика.

Если мы нарисуем их все, это будет выглядеть так:

Я также покажу мой код R:

m <- ggplot(dv.ver,
            aes(x = sec, Throughput, color=factor(Tables)))
m + geom_point()

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

 

m + geom_point() + geom_line()

 

Это выглядит лучше, но все же вам может быть трудно ответить: в каком случае показывается лучшая пропускная способность? какое число мы должны принять за конечный результат?

График джиттера может помочь:

 

m <- ggplot(dv.ver,
            aes(x = factor(Tables), Throughput, color=factor(Tables)))
m + geom_jitter(alpha=0.75)

 

С дрожанием мы видим некоторые плотные области, которые показывают «наиболее вероятную» пропускную способность.

Итак, давайте построим графики плотности:

 

m <- ggplot(dd,
            aes(x = Throughput,fill=factor(Tables)))
m+geom_density(alpha = 0.7)

 

или же

m+geom_density(alpha = 0.7)+facet_wrap(~Tables,ncol=1)

 

На этих графиках Ax X представляет собой Пропускную способность, а Ax Y представляет плотность попадания в данную Пропускную способность.

Это может дать вам представление о том, как сравнивать оба результата, и что наибольшая плотность составляет около 3600-3800 т / с.

И мы переходим к числам, мы можем строить боксы:

 

m <- ggplot(dd,
            aes(x = factor(Tables),y=Throughput,fill=factor(Tables)))
m+geom_boxplot()

 

Это может быть нелегко читать, если вы никогда не видели коробок. Это хороший способ представления данных . Короче говоря, средняя линия внутри прямоугольника — это медиана (линия, которая делит верхние 50% и нижние 50%), линия, ограничивающая верхнюю часть прямоугольника — 75% квантиля (делит 75% нижнего и 25% верхнего результатов), и соответственно — линия внизу окна — квантиль 25% (вы должны уже иметь представление, что это значит). Вы можете решить, какие измерения вы хотите провести, чтобы сравнить результаты — медиана, 75% и т. Д.

И, наконец, мы можем объединить джиттер и boxplot, чтобы получить:

m <- ggplot(dd,
            aes(x = factor(Tables),y=Throughput,color=factor(Tables)))
m+geom_boxplot()+geom_jitter()

 

Вот и все на сегодня.

Полный скрипт sysbench-4-16.R с данными, которые вы можете получить на стартовой панели тестов

Если вы хотите увидеть больше идей визуализации, вы можете посетить блог Брендана :

И если вам интересно, что делать с такими нестабильными результатами в MySQL, следите за обновлениями. Есть решение.