R 在ggplot上绘制连接两点的线段
我有一个点图,每个类别上有两个不同的点,我想创建一条线段,将每行上的两个点连接起来R 在ggplot上绘制连接两点的线段,r,ggplot2,R,Ggplot2,我有一个点图,每个类别上有两个不同的点,我想创建一条线段,将每行上的两个点连接起来 items %>% group_by(category) %>% summarise(med_buy_price = mean(buy_value, na.rm = TRUE), med_sell_price = mean(sell_value, na.rm = TRUE)) %>% pivot_longer(cols = c("med_buy_pr
items %>%
group_by(category) %>%
summarise(med_buy_price = mean(buy_value, na.rm = TRUE),
med_sell_price = mean(sell_value, na.rm = TRUE)) %>%
pivot_longer(cols = c("med_buy_price", "med_sell_price"),
names_to = "measure",
values_to = "value") %>%
ggplot(aes(x = value, y = category)) +
geom_point(aes(color = measure), size = 3)
要创建线段,需要有线段的起点和终点。因此,您可以使用宽格式,因此不再需要透视 然后创建用于销售和购买价值的单个几何图形点,以及结合这两个点的几何图形段 此代码将在以下情况下工作:
library(ggplot2)
library(dplyr)
library(tibble)
library(tidyr)
items <- tribble(
~category, ~buy_value, ~sell_value,
"Wallpaper", 2000, 5200,
"Usables", 500, 12500,
"Umbrellas", 200, 1800
)
items %>%
group_by(category) %>%
summarise(med_buy_price = mean(buy_value, na.rm = TRUE),
med_sell_price = mean(sell_value, na.rm = TRUE)) %>%
ggplot() +
geom_point(aes(x = med_buy_price, y = category), size = 3, color = "red")+
geom_point(aes(x = med_sell_price, y = category), size = 3, color = "green")+
geom_segment(aes(x = med_buy_price, xend = med_sell_price, y = category, yend = category))
如果您不坚持使用geom_point,您可以尝试使用geom_errorbar,这将简化一点
items %>%
group_by(category) %>%
summarise(med_buy_price = mean(buy_value, na.rm = TRUE),
med_sell_price = mean(sell_value, na.rm = TRUE)) %>%
ggplot(aes(xmin=med_buy_price,xmax=med_sell_price, y = category)) +
geom_errorbar(width=0.1)