Используя некоторые случайные данные в качестве примера, следующий код представляет собой решение tidyverse
, которое дает вам столбчатую или столбчатую диаграмму (поскольку ваши данные уже объединены, это путь к go), имитирующую вашу таблицу Excel для одного набора данных. Как вы уже догадались, сложная часть заключается в получении ваших данных в R (с этой целью: посмотрите на пакет readxl
) и перестановке его для построения графиков (это делается с помощью pivot_longer
из пакета tidyr
и mutate
из dplyr
, оба из которых являются частью tidyverse
. Что касается графика, я использую ggplot2
, который - вы, возможно, догадались (; - также часть tidyverse
.
# Example data set
set.seed(42)
df <- data.frame(
distance = paste0(seq(0, 3.5, by = 0.5), "-", seq(0.5, 4, by = 0.5)),
`2015` = round(runif(8) * 8, 0),
`2016` = round(runif(8) * 8, 0),
`2017` = round(runif(8) * 8, 0)
)
df
#> distance X2015 X2016 X2017
#> 1 0-0.5 7 5 8
#> 2 0.5-1 7 6 1
#> 3 1-1.5 2 4 4
#> 4 1.5-2 7 6 4
#> 5 2-2.5 5 7 7
#> 6 2.5-3 4 2 1
#> 7 3-3.5 6 4 8
#> 8 3.5-4 1 8 8
library(tidyverse)
df %>%
# Convert the dataset to long format
pivot_longer(-distance, names_to = "Year", values_to = "Value") %>%
# format the dates, get rid of leading Xs
mutate(Year = gsub("^X", "", Year)) %>%
ggplot(aes(distance, Value, fill = Year)) +
# Column chart. Add some width between columns
geom_col(position = position_dodge2(2)) +
scale_y_continuous(expand = expansion(mult = c(0, .05))) +
scale_fill_manual(values = c("blue", "orange", "grey")) +
# Get rid of axis and legend labels
labs(y = "", x = "", fill = "") +
theme_bw() +
theme(legend.position = "bottom")
Создано в 2020-04-05 пакетом представительство (v0.3.0)