【发布时间】:2014-12-15 08:21:52
【问题描述】:
我有一个产品数据框和生产它们的时间(天):
test <- structure(list(product = c("prod.1", "prod.2", "prod.3", "prod.4", "prod.5",
"prod.6", "prod.7", "prod.8", "prod.9", "prod.10", "prod.11", "prod.12", "prod.13",
"prod.14", "prod.15", "prod.16", "prod.17", "prod.18", "prod.19", "prod.20", "prod.21",
"prod.22", "prod.23", "prod.24", "prod.25", "prod.26", "prod.27", "prod.28", "prod.29",
"prod.30", "prod.31", "prod.32", "prod.33", "prod.34", "prod.35", "prod.36", "prod.37",
"prod.38", "prod.39", "prod.40", "prod.41", "prod.42", "prod.43", "prod.44", "prod.45",
"prod.46", "prod.47", "prod.48", "prod.49", "prod.50"), prodTime = c(4.03, 3.8, 3.75,
3.74, 3.72, 3.7, 3.66, 3.66, 3.66, 3.64, 3.63, 3.63, 3.63, 3.6, 3.6, 3.58, 3.58, 3.58,
3.57, 3.57, 3.57, 3.56, 3.56, 3.56, 3.56, 3.55, 3.53, 3.53, 3.53, 3.53, 3.53, 3.52, 3.51,
3.51, 3.51, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.49, 3.49, 3.48, 3.48, 3.48, 3.48,
3.47)), .Names = c("product", "prodTime"), row.names = c(NA, -50L), class =
c("data.frame"))
并且可以毫无问题地输出一个几乎如我所愿的情节:
ggplot(data=test, aes(x=prodTime, y=reorder(factor(product), prodTime))) +
geom_segment(aes(yend=product, xend=0)) +
geom_point() +
coord_cartesian(xlim=c(2.5, 4.25)) +
theme_minimal() +
theme(panel.grid.major.y=element_blank(),
axis.ticks=element_blank()) +
labs(x='', y='') +
geom_vline(aes(xintercept=3.7), color = 'red', linetype = 'dashed') +
geom_vline(aes(xintercept=3.3), color = 'blue', linetype = 'dashed')
但是,我想要得到的是一个类似的图,其中所有产品标签(prod.01 到 prod.50)、段和点都是浅灰色的,但其中一些会突出显示(例如,在不同的颜色)。假设 prod.03、prod.12、prod.29、prod.41 是唯一要突出显示的(标签、段和点)。
欢迎提出任何建议。
【问题讨论】: