在R中从数据框创建颜色向量并绘制条形图的问题求助
解决方法
错误原因
dColorVector 并非R的内置函数,也不属于主流绘图相关包(如ggplot2、viridis),因此会抛出"could not find function"的错误。以下是两种实现需求的可行方案:
方案1:Base R 实现
先构造数据框(如果还未创建):
df <- data.frame( City = c("Brisbane", "Melbourne", "Victoria", "Sydney", "NSW", "Adelaide"), Cost = c(1657, 7583, 5738, 9274, 5938, 8223) )
- 生成plasma色系的颜色向量
需要用到viridis包(提供色盲友好的颜色方案),先安装加载:
install.packages("viridis") library(viridis) # 根据城市数量生成对应颜色 cv <- viridis(nrow(df), option = "plasma")
- 绘制条形图
barplot(df$Cost, names.arg = df$City, col = cv, xlab = "City", ylab = "Cost", main = "各城市成本对比")
方案2:ggplot2 实现(更灵活美观)
- 安装并加载依赖包:
install.packages(c("ggplot2", "viridis")) library(ggplot2) library(viridis)
- 绘制带自定义颜色的条形图:
ggplot(df, aes(x = City, y = Cost, fill = City)) + geom_bar(stat = "identity") + scale_fill_viridis(discrete = TRUE, option = "plasma") + labs(x = "City", y = "Cost", title = "各城市成本对比") + theme_minimal()
替代方案(无需额外包)
如果不想安装viridis包,可使用Base R内置的颜色生成函数:
# 生成彩虹色系颜色向量 cv <- rainbow(nrow(df)) # 或热色系 cv <- heat.colors(nrow(df))
内容的提问来源于stack exchange,提问作者user11607046
相关产品推荐
相关产品推荐

