数据分析(R语言)——ggplot绘制多线图结果图颜色不匹配

2023-10-28 04:00

本文主要是介绍数据分析(R语言)——ggplot绘制多线图结果图颜色不匹配,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述:

MelbCV.csv是墨尔本人行道监控数据的一个子集如下图,依据统计数据回答各个监控点一天的哪些时段是行人通过的高峰?所有监控点是否有一致的人流高峰时段?若有,是哪个(些)时段?哪个路口人流量最大?哪个路口人流量最小?依据什么得出的结论?人流量的最大值出现在哪个监控点的哪天的哪个时段?
下面是数据集:
在这里插入图片描述
下面是数据集的说明

colname含义类型唯一值个数众数
Date日期character30所有值出现频次相同
Year年份double1所有值出现频次相同,2012
Month月份double1所有值出现频次相同,9
Mdatedouble30所有值出现频次相同
Weekday_End表示周末或工作日,10代表工作日,20代表周末double2所有值出现频次相同,10,20
Day表示一周里的第几天,周日是第一天double71,7
Hour表示一天中的第几个小时double24所有值出现频次相同
Town_Hall-West在Town_Hall-West的人行道通过人数double61335
Collins Place-South在Collins Place-South的人行道通过人数double48510
Australia on Collins在Australia on Collins的人行道通过人数double49816
Bourke Street Mall-South在Bourke Street Mall-South的人行道通过人数double55212
Bourke Street Mall-North在Bourke Street Mall-North的人行道通过人数double5484
Melbourne Central在Melbourne Central的人行道通过人数double59832
Flagstaff Station在Flagstaff Station的人行道通过人数double39210
State Library在State Library的人行道通过人数double30824

下面是相关的部分代码:

alter<-MelbCV
alter[is.na(alter)]<-mean(MelbCV$`State Library`,na.rm=TRUE)#应用平均值
t_peak<-group_by(alter,Hour)%>%summarise(count=n(),mean1=mean(`Town_Hall-West`),mean2=mean(`Collins Place-South`),mean3=mean(`Australia on Collins`),mean4=mean(`Bourke Street Mall-South`),mean5=mean(`Bourke Street Mall-North`),mean6=mean(`Melbourne Central`),mean7=mean(`Flagstaff Station`),mean8=mean(`State Library`))
#col_fill<-factor(colnames(MelbCV[,8:15]))
ggplot(t_peak)+ylab("人数")+geom_line(aes(Hour,mean1,color="tomato"))+geom_line(aes(Hour,mean2,color="orange"))+geom_line(aes(Hour,mean3,color="mediumblue"))+geom_line(aes(Hour,mean4,color="purple"))+geom_line(aes(Hour,mean5,color="gold"))+geom_line(aes(Hour,mean6,color="hotpink"))+geom_line(aes(Hour,mean7,color="green"))+geom_line(aes(Hour,mean8,color="black"))+scale_x_continuous(breaks=seq(0:22))#scale_color_manual(values = c("tomato","orange","mediumblue","purple","gold","hotpink","green","black"),labels=as.vector(col_fill))

在这里插入图片描述
做出的图和我设定的颜色没有一毛钱关系

原因分析:

解决方案:

转载自知乎@陆壹肆
根据上面的文章,将上面的代码做了一些修改

alter<-MelbCV
alter[is.na(alter)]<-mean(MelbCV$`State Library`,na.rm=TRUE)#应用平均值
#t_peak里将count列删除了
t_peak<-group_by(alter,Hour)%>%summarise(mean1=mean(`Town_Hall-West`),mean2=mean(`Collins Place-South`),mean3=mean(`Australia on Collins`),mean4=mean(`Bourke Street Mall-South`),mean5=mean(`Bourke Street Mall-North`),mean6=mean(`Melbourne Central`),mean7=mean(`Flagstaff Station`),mean8=mean(`State Library`))
col_fill<-colnames(MelbCV[,8:15])
max_num<-apply(t_peak,2,FUN =  function(x) {max(x)
})
max_hour<-apply(t_peak,2,FUN =  function(x) {which.max(x)-1
})
#这里增加了将表格融合
library(reshape2)
long_peak <- melt(t_peak, id="Hour")#融合效果如下图一
ggplot(data=long_peak,aes(x=Hour, y=value, group=variable, color=variable))+geom_line()#输出效果如下

在这里插入图片描述
在这里插入图片描述

这篇关于数据分析(R语言)——ggplot绘制多线图结果图颜色不匹配的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290556

相关文章

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

使用Python在PDF中绘制多种图形的操作示例

《使用Python在PDF中绘制多种图形的操作示例》在进行PDF自动化处理时,人们往往首先想到的是文本生成、图片嵌入或表格绘制等常规需求,然而在许多实际业务场景中,能够在PDF中灵活绘制图形同样至关重... 目录1. 环境准备2. 创建 PDF 文档与页面3. 在 PDF 中绘制不同类型的图形python

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础