使用频率表数据中的 ggplot 分组条形图

如何解决使用频率表数据中的 ggplot 分组条形图

我有一个频率表,我想用它来做一个分组的条形图。 感兴趣的主题(即狩猎、钓鱼)将在 x 轴上,这些项目的值将在 y 轴上,它们将按年龄组分组。

数据如下:

structure(list(ï..Topic = c("Hunting","Game Lands","Boating","Fishing","Bird watching","Wildlife Viewing (other than bird watching)","Research Reports","Law Enforcement","NCWRC Rules and Regulations","Human Wildlife Interactions","Trapping","Learning & Education Opportunities","Agency Events","Commissioner and Agency Staff Profiles & Awards","Citizen Science Opportunities","Volunteer Opportunities","Private Land Management","Shooting Sports","Archery","Wildlife Associated Recreation (Photography,hiking,botany)","Conservation","Species Information","Diversity,Equality,and Inclusivity","Youth Opportunities","Philanthropy","Wildlife Facilities (hatcheries,education centers,etc)","Other"),X18.24 = c("12.35"," 9.88"," 4.94","12.35"," 0.00"," 2.22"," 4.44"," 3.95"," 8.15"," 1.23"," 0.99"," 5.19"," 4.69"," 1.98"," 3.70"," 5.93"," 6.91"," 5.43"," 0.00"),X25.34 = c(" 6.96","10.17"," 5.18"," 7.90"," 1.47"," 1.70"," 2.19"," 7.32"," 0.89"," 2.32"," 3.21"," 1.20"," 0.13"," 2.41"," 2.54"," 3.66"," 3.61"," 3.79"," 6.78"," 7.05"," 0.49"," 0.18"," 5.27"," 0.54"),X35.54 = c("8.92","8.04","5.86","9.75","1.44","2.73","2.99","2.85","7.52","2.43","2.54","2.84","1.13","0.26","1.38","2.37","4.22","5.05","3.71","3.60","5.14","5.72","0.33","3.84","0.27","4.78","0.32"),X55.64 = c("7.88","7.29","6.26","9.82","2.36","3.18","3.46","3.64","8.29","2.97","1.66","3.02","1.23","0.18","1.32","3.00","3.67","5.46","2.87","3.31","4.23","6.86","0.49","1.94","0.19","5.10","0.34"),X65.or.older = c(" 7.58"," 5.72"," 6.68","10.32"," 3.23"," 4.59"," 3.43"," 3.50"," 8.78"," 3.85"," 1.13"," 2.92"," 1.05"," 0.35"," 1.16"," 2.40"," 2.61"," 4.80"," 1.75"," 4.29"," 4.48"," 7.14"," 0.45"," 1.67"," 0.25"," 5.50"," 0.41"),Prefer.not.to.share = c("5.74","6.01","6.28","7.79","1.09","7.92","2.60","3.83","6.69","3.28","3.96","1.64","0.00","3.42","2.05","5.74","4.51","2.32","0.68","2.19")),class = "data.frame",row.names = c(NA,-27L))

我尝试使用以下方法更改格式: library(reshape2) ages<- melt(age.table[,c("ï..Topic",'X18.24','X25.34','X35.54','X55.64',"X65.or.older")],id.vars = 1) * 我真的不需要这里的“宁愿不回答”的回答。

然后使用

绘图
library(ggplot2)
b<-ggplot(ages,aes(x=ï..Topic,y=value,fill = variable)) + geom_bar(stat="identity",position= "dodge")+ coord_flip() +scale_fill_brewer(palette = "Paired")

我得到了一个图,但这些值与原始表中的值不一致。另外,我如何防止它重新排列年龄组的顺序并保持每个主题的一致性(即从最低年龄类别升到最高,而不是根据值排序) 见下表

Attempted plot with strange values

解决方法

您的问题是您的数据都不是数字 - "12.35" 带引号,是字符串。没有引号的 12.35 是一个数字。您需要将数字列转换为数字类。 age.table <- type.convert(age.table) 应该做得很好。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-