2014-01-31 2 views
1

Я хотел бы построить довольно небольшую матрицу (4 на 5), как показано на картинке - пожалуйста, смКонкретный способ построения матрицы (рисунок прилагается)

enter image description here

(Это короткое время -серии определенного индикатора, который состоит из компонентов w + x + y + z. Для года 1 значение индикатора, обозначенное как «a», равно w_1 + x_1 + y_1 + z_1.) \

Любые мысли о том, как построить что-то вроде этого? Может быть, неплохо было бы строить такие данные. С другой стороны, это не так уж плохо. И это, конечно, лучше, чем сказать 5 гистограмм или, что еще хуже, 5 круговых диаграмм. \

OT: Знаете ли вы какие-либо сайты или документы с расширенными примерами R-графиков? Google нашел просто простые сюжеты.

EDIT: пример данных (векторы ж/х/у/г уже выражены аа процент)

w <- (0.1,0.15,0.1,0.1,0.3) 
x <- (0.15,0.15,0.1,0.1,0.25) 
y <- (0.15,0.10,0.2,0.2,0.05) 
z <- (0.6,0.6,0.6,0.6,0.4) 
abcd <- (222222,333333,444444,500000,555555) 
+0

Этот вопрос будет легче ответить, если предоставленные вами данные примера. – Roland

+0

http://docs.ggplot2.org/current/position_stack.html – mlt

+0

[Решетчатый пакет] (http://lmdvr.r-forge.r-project.org/figures/figures.html) может делать что-то вроде этого , с небольшим усилием, я считаю. ссылка не совсем то, что вы хотите, но я бы поспорил, что ggplot2 тоже может это сделать. – Mars

ответ

1

Из картины и предоставленной Вами информации, я не могу сказать, что происходит на правой стороне вашего рисунка, но график относительного изобилия, который вы показали, довольно легко сделать, используя geom_area от ggplot2. Вот как это получить из предоставленных данных:

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

df<-data.frame(w,x,y,z) 
library(reshape) 
df<-melt(df) 
df$year<-rep(c(1:5),4) 

Теперь данные легко могут быть нанесены в виде относительного обилия графика:

library(ggplot2) 
ggplot(df,aes(x=year,y=value,group=variable))+geom_area(aes(fill=variable)) 

Является ли это более или менее то, что вы пытаетесь делать? Извините, если я только частично ответил или неправильно понял ваш вопрос, как я уже сказал, я все еще не совсем уверен, что вы ищете из картины.

0

Это кажется довольно близким к вашей графике.

# your sample data 
w <- c(0.1,0.15,0.1,0.1,0.3) 
x <- c(0.15,0.15,0.1,0.1,0.25) 
y <- c(0.15,0.10,0.2,0.2,0.05) 
z <- c(0.6,0.6,0.6,0.6,0.4) 
df <- rbind(w,x,y,z) 

library(reshape2) 
library(ggplot2) 
library(scales) 
gg <- melt(df) 
ggplot(gg) + 
    geom_bar(aes(x=Var2, y=value, fill=Var1), stat="identity")+ 
    scale_y_continuous(labels = percent)+ 
    scale_fill_discrete("") + labs(x="Year", y="") 

Ваши данные в так называемый «широкий формат», что означает, что в разные годы в разных столбцах. Для удобства построения графика его необходимо преобразовать в «длинный формат», используя melt(...). В gg все значения находятся в одном столбце (values), и есть новый столбец, который указывает, из какого столбца он пришел изначально (здесь здесь находится Var2). Столбец Var1 содержит исходные имена строк.

В ggplot вызовов выполните следующие действия:

ggplot(gg) establishes gg as the reference dataset 
geom_bar(...) tells ggplot what to use for the x and y axes, and for colors 
sacle_y... tells ggplot to use percent for the y-axis tick marks 
scale_fill... tells ggplot to turn off the legend label 
labs(...)  tells ggplot how to label the axes. 
+0

Предложение Джо выше больше похоже на то, что я изначально искал, поэтому я принял его ответ. Тем не менее, это тоже очень интересный способ представления данных! ___ Что меня беспокоит, хотя это порядок переменной 1 в легенде справа, поскольку она идет в алфавитном порядке и не нравится на сюжете. Согласно http://learnr.wordpress.com/2010/03/23/ggplot2-changing-the-default-order-of-legend-labels-and-stacking-of-data/, я должен сделать это вручную , Btw, возможно ли изменить имена в легенде, чтобы они не влияли на имена переменных? – Vochmelka

Смежные вопросы