накладывать гистограмму со стрипплотом - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу наложить столбчатую диаграмму со стрипплотом и использовать панель параметров в xyplot, но она не работает. Он ничего не отображает и выдает много предупреждений, таких как:

1: In order(as.numeric(x)) : NAs introduced by coercion
2: In diff(as.numeric(x[ord])) : NAs introduced by coercion

Код здесь, однако он работает с факториальными переменными Alternatice и Subject, хотя он строит планку по горизонтали:

t2 <- data.frame(Alternative = c("FA", "HF", "NO", "HF", "FA", "NO"), 
  AlloOthe = c(50, 80, 20, 80, 80, 20), 
  Subject = rep(c("2001", "2002"), each = 3)
)
t2$Alternative <- as.character(t2$Alternative)
t2$Subject <- as.character(t2$Subject)
library(lattice)
xyplot(AlloOthe ~ Alternative | Subject, data = t2,
  panel = function(x, y) {
    panel.barchart(x, y)
    panel.stripplot(x, y, type = c("p", "l"))
  },
  ylab = "Allocation to Other"
)

Так может кто-нибудь показать мне правильный код или заставить его работать на правильных данных? Большое спасибо!

1 Ответ

0 голосов
/ 11 ноября 2019

Я не являюсь экспертом в пакете lattice, но я получаю ваш график, следуя этому сообщению: Добавление точек полоски на bwplot (решетка в R) , поэтому я добавляю ... копределение функции панели, а также я заменил xyplot на barchart.

ТАК, в принципе, это выглядит так:

# Assigning Alternative and Subject as factor
t2$Alternative = as.factor(t2$Alternative)
t2$Subject = as.factor(t2$Subject)

library(lattice)
barchart(AlloOthe ~ Alternative | Subject, data = t2,
         panel = function(x,y,...) {
           panel.barchart(x,y,col=adjustcolor("darkorchid",alpha=.6),...)
           panel.stripplot(x,y,col="lightseagreen",pch=16,size=3,...)
         },
         ylab = "Allocation to Other")

А сюжет выглядит так:

enter image description here

В качестве альтернативы вы можете использовать ggplot, выполнив следующее:

library(ggplot2)
ggplot(t2, aes(x = Alternative, y = AlloOthe, group = Alternative)) +
  facet_grid(.~Subject) +
  geom_bar(stat = "identity", fill = adjustcolor("darkorchid", alpha = 0.6)) +
  geom_point(size = 3, color = "lightseagreen") +
  ylab("Allocation to Other")

И график выглядит так:

enter image description here

Надеюсь, это поможет вам!

...