❝在R中创建sina图使用geom_sina函数,sina图是一种用于显示单个分类变量的每个观测值的图形。它与箱线图和小提琴图类似,但是它显示了每个单独的数据点,这可以提供关于数据分布的更多信息。 ❞
「sina图的主要优点是它可以清楚地显示每个数据点,而不是简单地显示数据的总体分布。这使得sina图特别适用于小样本大小的数据集,其中每个数据点的值都很重要。」
library(tidyverse)
library(lubridate)
library(scico)
library(ggforce)
df <- read_csv("data.csv") %>% janitor::clean_names()
df <- df %>% mutate(year=year(gas_day_started_on)) %>%
filter(year > 2012) %>% # 筛选数据
select(gas_day_started_on,gas_in_storage_t_wh) %>%
mutate(mth = month(gas_day_started_on))
df %>%
ggplot(aes(x=mth, y=gas_in_storage_t_wh,group=mth)) +
# 使用ggforce包中的geom_sina函数绘制sina图
ggforce::geom_sina(aes(color=gas_in_storage_t_wh), alpha=.5, shape=21)+
# 添加文本标签
geom_text(data=tibble(x=6.5, y=seq(2,8,2), lab=c("2","4","6","8TWh")),
aes(x=x, y=y, label=y),inherit.aes = FALSE)+
# 使用scico包中的scale_color_scico函数为图形添加颜色
scico::scale_color_scico(palette="roma", direction=-1,
labels=scales::label_number(suffix="TWh")) +
# 设置x轴和y轴的刻度
scale_x_continuous(breaks=c(seq(1,12,1)), labels=month.abb[1:12]) +
scale_y_continuous(breaks=c(seq(0,8,2))) +
coord_polar() + # 使用极坐标系
# 使用cowplot包中的theme_minimal_grid函数设置主题
cowplot::theme_minimal_grid(12, line_size = .3) +
# 设置图例和轴的样式
theme(legend.position = "top",
legend.title=element_blank(),
legend.text=element_text(size=9.5),
axis.title=element_blank(),
axis.text.y=element_blank(),
plot.margin=margin(.5,0,.3,0, unit="cm"),
legend.justification = "center",
legend.margin=margin(b=-15)) +
# 设置颜色条的样式
guides(color=guide_colorbar(barwidth = unit(18,"lines"),
barheight = unit(.5,"lines")))