Участок «двойной» столбец с указанием значения в R - PullRequest
0 голосов
/ 14 января 2019

Я хочу построить «двойную» гистограмму для трех категорий данных и показать уровень значимости на основе критерия Уилкокса для каждой из двух «двойных» гистограмм.

Запустив приведенный ниже код, я не вижу отсчетов, отраженных по оси Y, скорее, все столбцы находятся на одной высоте.

library(dplyr) 
library(ggplot2)
library(ggpubr)
library(reshape2)
theme_set(theme_pubclean())

data = data.frame("cut" = c("type 1","type 1","type 2","type 2","type 3","type 3"), "counts" = c(0.6844,0.5867,0.6297,0.6383,0.7134,0.7075), "color" = c("c","d","c","d","c","d"))
data

df <- data %>%
  filter(color %in% c("c", "d")) %>%
  group_by(cut, color) %>%
  summarise(counts = n()) 

ggdotchart(df, x = "cut", y ="counts",
           color = "color", palette = "jco", size = 3, 
           add = "segment", 
           add.params = list(color = "lightgray", size = 1.5),
           position = position_dodge(0.3),
           ggtheme = theme_pubclean()
)

Сюжет, который я пытаюсь сделать, выглядит примерно так: https://drive.google.com/open?id=1EndiF-sCtXFyUOAPIToRY5hqjp97b1Px

оцените вашу помощь: 1. отредактируйте мой код так, чтобы он отображал значения реального количества 2. добавить значение к сюжету

1 Ответ

0 голосов
/ 14 января 2019

Это то, что вы ищете?

data %>%
  spread(color, counts) %>%
  mutate(
    lab_pos = pmax(c, d) + .07,
    lab = if_else(cut == 'type 3', '*', 'ns')
  ) %>%
  gather(color, counts, c:d) %>%
  ggplot(aes(
    x = cut,
    y = counts,
    color = color,
    group = color
  )) +
  geom_col(
    position = position_dodge(.4),
    color = 'white',
    width = .05
  ) +
  geom_point(
    position = position_dodge(.4),
    size = 3
  ) +
  geom_text(aes(
      y = lab_pos,
      label = lab
    ),
    check_overlap = TRUE,
    color = rgb(.2, .2, .2)
  ) +
  ylim(0, 1)

enter image description here

...