Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >绘制多个数据集并将类别与条形图进行比较

绘制多个数据集并将类别与条形图进行比较
EN

Stack Overflow用户
提问于 2021-07-05 16:43:00
回答 1查看 33关注 0票数 0

我有三个变量相同的数据集,我想比较这三个数据集之间29个不同类别的一个变量。下面的例子应该可以作为一个可重现的例子。我已经尝试绘制了它,但输出结果并不像预期的那样。我希望有三个酒吧彼此相邻,并在每个类别的情节一个小情节。

代码语言:javascript
运行
AI代码解释
复制
number_trackers = c(1, 2, 3, 4, 5, 6), 
category = c("Ads", "Analytics", "Ads", "Analytics", "Ads", "Ads"), 
c4 = c("url1.com","ur2.com","url3.com","url4.com","url5.com","url6.com"))

List_short_after=data.frame = c("Tracker1", "Tracker2", "Tracker3", "Tracker4","Tracker5","Tracker6"), 
number_trackers = c(1, 2, 3, 4, 5, 6), 
category = c("Ads", "Analytics", "Ads", "Analytics", "Ads", "Ads"), 
c4 = c("url1.com","ur2.com","url3.com","url4.com","url5.com","url6.com"))

List_after=data.frame = c("Tracker1", "Tracker2", "Tracker3", "Tracker4","Tracker5","Tracker6"), 
number_trackers = c(1, 2, 3, 4, 5, 6), 
category = c("Ads", "Analytics", "Ads", "Analytics", "Ads", "Ads"), 
c4 = c("url1.com","ur2.com","url3.com","url4.com","url5.com","url6.com")) 

ggplot(data = NULL, 
       mapping = aes(y = number_trackers,x=category)) +
  geom_col(data = List_before,fill= "#ca93ef", colour="#ca93ef") +
  geom_col(data = List_short_after,fill= "#5034c4", colour="#5034c4") +
  geom_col(data = List_after,fill= "#795fc6", colour="#795fc6") +
  facet_wrap(facets = vars(category))+
  theme_minimal() +
  theme(text = element_text(color = "#795fc6",size=12,face="bold"),
        axis.text = element_text(color = "#795fc6",size=14,face="bold"))+
  labs(  y = "Number Trackers", x = "Categories")

[![This is how the plot shut look like just with 3 bars instead of 2][1]][1]


  [1]: https://i.stack.imgur.com/nDq36.png
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-06 18:26:26

下面是可以帮助你达到目标的代码。请注意,我对您的输入数据进行了一些处理,因为它在您的问题中似乎不完整。

代码语言:javascript
运行
AI代码解释
复制
library(ggplot2)

List_before <- data.frame(
  list_id = "list_before",
  name = c("Tracker1", "Tracker2", "Tracker3", "Tracker4","Tracker5","Tracker6"),
  number_trackers = sample(c(1, 2, 3, 4, 5, 6)), 
  category = c("Ads", "Analytics", "Other 1", "Other 2", "Other 3", "Other 4"), 
  c4 = c("url1.com","ur2.com","url3.com","url4.com","url5.com","url6.com"))

List_short_after <- data.frame(
  list_id = "list_short_after",
  name = c("Tracker1", "Tracker2", "Tracker3", "Tracker4","Tracker5","Tracker6"),
  number_trackers = sample(c(1, 2, 3, 4, 5, 6)), 
  category = c("Ads", "Analytics", "Other 1", "Other 2", "Other 3", "Other 4"), 
  c4 = c("url1.com","ur2.com","url3.com","url4.com","url5.com","url6.com"))

List_after <- data.frame(
  list_id = "list_after",
  name = c("Tracker1", "Tracker2", "Tracker3", "Tracker4","Tracker5","Tracker6"),
  number_trackers = sample(c(1, 2, 3, 4, 5, 6)),
  category = c("Ads", "Analytics", "Other 1", "Other 2", "Other 3", "Other 4"), 
  c4 = c("url1.com","ur2.com","url3.com","url4.com","url5.com","url6.com")) 

df <- rbind(List_before, List_short_after, List_after)

df$list_id <- as.factor(df$list_id)
df$category <- as.factor(df$category)

ggplot(df, aes(y = number_trackers, x = list_id)) +
  geom_bar(aes(fill = list_id), stat = "identity", position = position_dodge()) +
  theme(axis.text.x = element_blank(),
        axis.ticks.x = element_blank()) +
  facet_grid(~category) +
  labs(y = "Number of Trackers", x = NULL)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68259519

复制
相关文章
cmake/gcc:strip缩减程序体积
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/83212925
10km
2019/05/25
3.9K0
python数据类型-列表创建和操作
从字符串取数据的时候要分片,也就是切割。通过索引的形式,而这里用字符串取值的时候 每个角色取值的名字 长短不一,所以几个字符代表名字 ,是不可以的,血的值 也是经常变换的 所以显然字符串该被淘汰了。
py3study
2020/01/09
9500
linux LVM逻辑卷的创建,扩容,缩减和删除
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
用户4877748
2020/07/22
6.9K0
linux  LVM逻辑卷的创建,扩容,缩减和删除
Linux使用lvresize扩展或缩减lv大小
2.创建lv,名称是lv_u01,大小10g,从vg_jydb中划分空间,这里的vg_jydb是vg的名称。
Alfred Zhao
2022/05/06
2.2K0
使用Swift操作NSDate类型基础
  时间类型是我们在处理业务的时候使用非常频繁的一个数据类型。下面我们看一下时间NSDate的基本使用方法。
MJ.Zhou
2022/05/07
6710
使用Swift操作NSDate类型基础
PCS7 过程标签类型批量创建程序演示
PCS7的项目重在前期的布局,编辑好模板程序,设置好相应引脚的显隐、参数等,后续会减少大量工作量。熟练运用IEA过程标签类型导入导出,在组态大型的PCS7项目时会有很大优势。
剑指工控
2021/11/09
1.6K0
【应用安全】 使用Java创建和验证JWT
Java对JWT(JSON Web Tokens)的支持过去需要大量的工作:广泛的自定义,几小时的解析依赖关系,以及仅用于组装简单JWT的代码页。不再!
架构师研究会
2019/05/13
2.3K0
【应用安全】 使用Java创建和验证JWT
使用cargo创建rust程序并运行
我们按照文档在路径中打开命令行终端 cargo new world_hello 我们现在就可以运行了 cd .\world_hello\ cargo run 可以看到输出了Hello, world 我们用vscode打开 可以对我们的代码进行少许更改,然后再次运行 fn main() { println!("world, Hello!"); } 再次运行 cargo run 可以看到我们的修改生效
阿超
2022/08/21
4100
使用cargo创建rust程序并运行
006:Redis-Set集合类型操作使用
所谓的集合好比一个乾坤袋,什么东西都可以放进去,但是每个集合中的各个元素不能重复。
李玺
2021/11/22
3570
006:Redis-Set集合类型操作使用
Ubuntu根分区使用Lvm扩容
ubuntu 根分区剩余空间不足,影响工作,因此通过lvm工具对根文件系统进行扩容
全栈程序员站长
2022/08/31
3.8K0
Ubuntu根分区使用Lvm扩容
使用TortoiseGit操作分支的创建与合并
点击右键选择TortoiseGit,选择Create Branch…,在Branch框中填写新分支的名称(若选中”switch to new branch”则直接转到新分支上,省去第二步),点击OK按钮:
用户1518699
2018/09/12
2.2K0
使用TortoiseGit操作分支的创建与合并
【安全】XSS 类型
后面会把前端进阶的课程内容都总结一遍。有些都是很常见的知识,但是为了梳理自己的知识树,所以尽量模糊的地方都会记录
神仙朱
2019/11/18
1K0
【C 语言】指针数据类型 ( 指针类型变量 | 使用 * 操作内存 )
测试 指针 变量占用的内存空间大小 : 定义一个 int * 指针类型变量 , 使用 sizeof 函数 获取该变量的大小 ;
韩曙亮
2023/03/29
6860
【C 语言】指针数据类型 ( 指针类型变量 | 使用 * 操作内存 )
Nova创建实例类型
创建一个实例类型名为:至尊型,ID为zzx,内存为8192M,系统盘为50G,CPU为8核,临时磁盘为:1G
院长技术
2021/02/19
1.1K0
Nova创建实例类型
004.LVM缩减
1 减少文件的大小一定需要按照上面提高的4个规定动作顺序来做,在缩减LV大小前,首先要缩减filesystem的大小,否则将导致文件系统破坏等恶劣影响。
木二
2019/07/26
4520
Android如何缩减APK包大小
代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs。 使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小。 native code的部分,大多数情况下只需要支持armabi与x86的架构即可。如果非必须,可以考虑拿掉x86的部分。 资源 使用Lint工具查找没有使用到的资源。去除不使用的图片,String,XML等等。 assets目录下的资源请确保没有用不上的文件。 生成APK的时候,aapt工具本身会对png做优化,但是在此之前
六月的雨
2018/05/14
1K0
Pandas类型操作
官网地址:https://pandas.pydata.org/docs/reference/api/pandas.to_numeric.html
皮大大
2023/08/25
2870
如何使用 Flutter 创建桌面应用程序[Flutter专题7]
开发人员可以选择编写多种类型的应用程序:控制台应用程序、移动应用程序、Web 应用程序和桌面应用程序。
徐建国
2021/11/30
4.7K0
如何使用 Flutter 创建桌面应用程序[Flutter专题7]
【Rust日报】2021-11-17 Neon - 使用 Rust 创建内存和类型安全的 Node.js 模块
Neon除了内存和类型安全之外,应该在 Node.js 中使用 Rust Embedding 的原因还有很多。
MikeLoveRust
2021/11/22
5940
点击加载更多

相似问题

如何使用根缩减程序配置存储

10

为相似类型的操作创建一个缩减程序

120

Python:使用`copyreg`为已有缩减程序的类型定义缩减程序

11

使用生成类型提供程序创建多个根类型

10

Redux操作不触发缩减程序

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档