2015-11-12 16 views
2

Я пытаюсь сравнить значения элементов питательных элементов (N, P, K и т. Д.) Из нескольких проб, используя функцию построения stripplot(). Я хочу видеть отдельные ценности бок о бок для каждого питательного вещества, а не отдельные графики для каждого испытания, так что легкодоступные сравнения могут быть сделаны в каждом питательном веществе (например, сравнение значений азота (N) от «Испытания А» до азота из «Судебного B»). Этот код делает бок о боке участках, которые не являются легко сопоставимы между Trials:Уровни удельного веса бок о бок в stripplot()

foo <- data.frame(conc=rnorm(90),element=rep(c("N","P","K"),each=30), 
        trial=rep(c("Trial_A","Trial_B"),times=45)) 
stripplot(conc~element|trial,data=foo) 

Есть ли способ, чтобы пересыпать питательные ценности, так что есть только один большой stripplot, а затем в конце концов, я бы просто использовать черчение символы (pch=), чтобы очертить испытания?

@ BlankUsername: Я очень ценю предложение кода. Тем не менее, я на самом деле пытаюсь построить значения бок о бок в отдельных «столбцах» точек ... Итак, в этом случае для N, P и K из 2 испытаний по оси x я бы имел в этом порядок: N от пробного 1, N от пробного 2, P от испытания 1, P от пробного 2, K от пробного 1, K от пробного 2 ... Итак, для 3 питательных веществ и 2 испытаний у меня были бы столбцы 2x3 = 6 " "значений, а не 3 столбца, где значения объединяются для обоих испытаний и обозначаются символами. Надеюсь, это описание имеет смысл. Я бы включил картину сюжета, который я пытаюсь сделать, если смогу это сделать, но тогда у меня уже будет ответ на этот вопрос, я думаю :) Причина, по которой я хотел бы сделать это таким образом, состоит в том, что я есть много питательных веществ со многими значениями для каждого испытания, и да, это становится немного громоздким, когда все они построены друг над другом, и я пытаюсь отличить символы!

ответ

0

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

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

require(lattice) 
foo <- data.frame(conc=rnorm(90),element=rep(c("N","P","K"),each=30), 
       trial=rep(c("Trial_A","Trial_B"),times=45)) 

stripplot(conc~element,data=foo,pch=as.numeric(factor(foo$trial))) 

enter image description here

Update Основываясь на комментарий, Возможное решение следующих используя бы ggplot вместо stripplot. Вы можете настроить это по своему усмотрению. См. this пост для более подробной информации.

library(ggplot2) 
p<-ggplot(foo, aes(x=element, y=conc, color=trial)) + 
    geom_jitter(position=position_dodge(0.5)) 
p 

enter image description here

Если вы хотите использовать stripplot я думаю, вы должны преобразовать данные немного. Вы можете добавить следующее:

foo$group<-paste(foo$element,foo$trial) 
stripplot(conc~group,data=foo,pch=as.numeric(factor(foo$trial))) 

enter image description here

+0

Я очень ценю код предложение. Тем не менее, я на самом деле пытаюсь построить значения бок о бок в отдельных «столбцах» точек ... Итак, в этом случае для N, P и K из 2 испытаний по оси x я бы имел в этом порядок: N от пробного 1, N от пробного 2, P от испытания 1, P от испытания 2, K от пробного 1, K от пробного 2 ...Итак, для 3 питательных веществ и 2 испытаний у меня было бы 2x3 = 6 «столбцов» значений, а не 3 столбца, где значения объединялись в питательном веществе для обоих испытаний и определялись символами. –

+0

См. Обновленный ответ. Я сделал это с помощью 'ggplot', см. Ссылку на веб-сайт для получения дополнительной информации. Я уверен, что должен быть способ использования 'stripplot', но я думаю, что это связано с некоторыми преобразованиями данных. – BlankUsername

+0

Спасибо! Я закончил делать некоторые преобразования данных (переупорядочение столбцов) и понял это в 'stripplot', но я использовал код' ggplot', и это сработало чудесно. В моей последней статье я собираюсь выяснить, как сделать ее красивой в ggplot, так как кажется, что было бы очень полезно научиться работать с 'ggplot2'. –

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

  • Нет связанных вопросов^_^